在node.js中多次同时访问文件写入会导致文件写入错误

时间:2013-03-20 17:26:12

标签: node.js file-io

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

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

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

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

2 个答案:

答案 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;