【发布时间】:2018-08-07 15:18:01
【问题描述】:
我正在遍历目录中的文件并将文件详细信息存储到数组data。如果我不尝试运行 fs.stat 来获取文件创建/编辑日期等信息,则以下代码将填充数组:
fs.readdir('../src/templates', function (err, files) {
if (err) {
throw err;
}
var data = [];
files
.forEach(function (file) {
try {
fs.stat('../src/templates/'+file,(error,stats) => {
data.push({ Name : file,Path : path.join(query, file) });
});
} catch(e) {
console.log(e);
}
});
res.json(data);
});
});
如果我将data.push(...) 移到fs.stat 之外,则数组将返回文件数据。在 fs.stat 内部,它返回空。我认为这是一个异步问题,因为 for 循环在 fs.stat 运行之前运行并完成。
我想我需要在这里使用一个承诺,但不确定。
【问题讨论】:
标签: javascript node.js fs