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