【发布时间】:2017-01-17 03:22:19
【问题描述】:
它是一个 NodeJS 项目。我正在使用npm start 启动服务器。
在这个项目中,我正在使用'fs.readdirSync' 读取文件夹"./mydir/" 的文件,将文件推送到数组中并在控制台上打印。
var fs = require('fs');
var results= [];
var files = fs.readdirSync('./mydir/');
for (var i in files) {
results.push(files[i]);
}
console.log(results);
代码运行良好,并在控制台上打印该目录的文件。
但是,当服务器打开时,当我从该目录'./mydir/' 插入/删除文件(手动)并刷新浏览器时,它没有显示效果(推送/打印早期结果)。我需要重新启动服务器(^C 然后npm start)才能在浏览器中看到更改。
是否有任何方法或任何模块仅通过刷新浏览器(保持服务器运行)来查看效果。
【问题讨论】:
-
您的服务器读取文件一次,而不是每次页面加载。这是预期的行为。
-
还有其他方式使用 Node js 模块吗?
-
我确定有合适的解决方案,但我们不知道您要解决的实际问题是什么。
-
如果该列表预计会发生变化,那么您可能不想缓存它,或者限制它的缓存时间。
-
最简单的方法是为每个需要它的页面请求重新创建列表,而不是在服务器启动时创建一次。不过,您肯定希望避免使用
Syncronous 函数,以避免在请求获取列表时阻塞队列。
标签: javascript node.js npm webpack fs