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

Gau*_*rav 0 file-io node.js

我使用以下代码写入一个公共文件.

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

它是从多个函数调用同时调用的.它正确完成文件写入操作但仍然抛出错误"错误写入文件".

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

lak*_*tak 8

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

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

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