我正在使用以下代码写入一个公共文件。
fs.appendFile('log.txt', str, function (err) {
console.log("error writing file");
});
它被多个函数调用同时调用。它正确完成了文件写入操作,但仍然抛出错误“错误写入文件”。
什么是编写/执行此代码的干净方式。我希望每个调用都等待 I/O 操作,直到已经编写函数完成工作。
实际上你错过了一个 if - 你应该检查是否设置了 err 。
fs.appendFile('log.txt', str, function (err) {
if (err) console.log("error writing file");
});
否则,它只会输出您的消息,因为每次追加后都会调用回调。
这是日志记录模块的基本示例。
var fs = require('fs');
var logStream = fs.createWriteStream('log.txt', {flags:'a'});
function log (str) {
logStream.write(str);
}
module.exports = log;