我的 node.js 应用程序每秒运行一个函数来(递归地)读取 .json 文件的目录树。这些文件通过 FTP 从客户端上传到服务器,并放置在运行节点脚本的文件夹中。
我发现(至少我认为正在发生的事情)是该节点在尝试读取它之前没有等待 .json 文件被完全写入,因此,它引发了“输入意外结束”错误. 似乎文件系统需要几秒钟(可能是几毫秒)才能正确写入文件。这也可能与从 FTP 写入的文件有关(可能是开销,我在这里完全猜测......)
有没有办法让我们在尝试使用节点读取文件之前等待文件完全写入文件系统?
fs.readFile(file, 'utf8', function(err, data) {
var json = JSON.parse(data); // throws error
});