0

我正在使用以下代码写入一个公共文件。

fs.appendFile('log.txt', str, function (err) {
    console.log("error writing file");
  });

它被多个函数调用同时调用。它正确完成了文件写入操作,但仍然抛出错误“错误写入文件”。

什么是编写/执行此代码的干净方式。我希望每个调用都等待 I/O 操作,直到已经编写函数完成工作。

4

2 回答 2

8

实际上你错过了一个 if - 你应该检查是否设置了 err 。

fs.appendFile('log.txt', str, function (err) {
    if (err) console.log("error writing file");
  });

否则,它只会输出您的消息,因为每次追加后都会调用回调。

于 2013-03-20T19:55:38.257 回答
3

这是日志记录模块的基本示例。

var fs = require('fs');

var logStream = fs.createWriteStream('log.txt', {flags:'a'});

function log (str) {
  logStream.write(str);
}

module.exports = log;
于 2013-03-20T18:06:19.183 回答