Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为目录| Javascript | NodeJS | EJS中的每个文件创建元素_Javascript_Node.js_Ejs - Fatal编程技术网

如何为目录| Javascript | NodeJS | EJS中的每个文件创建元素

如何为目录| Javascript | NodeJS | EJS中的每个文件创建元素,javascript,node.js,ejs,Javascript,Node.js,Ejs,我希望能够使用nodeJS应用程序中的ejs为目录中的每个文件创建一个。 现在,我有了方法,我想: <div class="container"> <% fs.readdir(dirname, (err, files) => { %> <% files.forEach(file => { %> <p> test</p> <% }); %>

我希望能够使用nodeJS应用程序中的ejs为目录中的每个文件创建一个。 现在,我有了方法,我想:

<div class="container">
    <% fs.readdir(dirname, (err, files) => { %>
        <%  files.forEach(file => { %>
            <p> test</p>
        <% }); %>
    <%  }); %>
 </div>
作为检查,在app.js内部,我检查是否可以访问dirname。它可以! 我将如何修复该错误

稍后,我想将XML文件添加到目录中,并执行转换,以防更改有关该方法的任何内容

致以最良好的祝愿, Kevin

除非将变量与要渲染的视图路径一起显式发送到渲染函数,.ejs文件中的变量不可见

以这个例子为指导:

res.render'index',{fs:fs}

编辑: 如果您正在编写浏览器应用程序,而不是电子或其他技术

您需要记住,.ejs模板在另一端编译为Javascript,因此将fs模块放到模板上不是一个明智的想法,因为如果在模板中使用,它将不起作用,访问驱动器信息客户端将不起作用

因此,如果您希望从不是客户端的服务器检索目录数据,我建议您将此数据加载到服务器上

下面是一个示例,在控制器中执行以下操作:

fs.readdir(dirname, (err, files) => {
    res.render('index', { files: files });
});
现在将视图修改为:

<%  files.forEach(file => { %>
    <p> test</p>
<% }); %>

好的,添加变量修复了它。但是,没有输入div,也没有未添加到视图中的段落。@kev1807这是非常少的信息,您现在可能有很多问题,不幸的是,您需要自己调试它。首先检查是否已将dirname变量传递给视图。fs.readdir方法为dirname返回的内容。如果有的话,file.forEach会返回什么文件。好吧,下面是我的app.js的一个工作示例和.ejs的一个工作示例。我正在js旅程的开始,以防你没有注意到:-我没有注意到,没有:不幸的是,Stackoverflow不是一个调试网站,您需要自己完成这一部分,因为在我的环境和参数方面有太多的未知因素。当你有关于下一期的更多细节时,请回来问另一个问题。我已经回答了你最初的问题。我的技巧是设置断点并逐步执行代码,但不确定是否可以用这种方式调试.ejs文件,我从未使用过。我没有调试经验:-D我更改了函数以某种方式表示错误处理,以便我看到,哪些文件列出了1.xml和2.xml,非常详细,我知道。。。不幸的是,我没有收到任何错误-/
fs.readdir(dirname, (err, files) => {
    res.render('index', { files: files });
});
<%  files.forEach(file => { %>
    <p> test</p>
<% }); %>