fs.writeFile() 不 return 回调

fs.writeFile() doesn't return callback

我正在尝试将包含用户身份验证数据的文件写入磁盘。为此,我编写了以下函数:

function writeAuthFile(data, success, fail) {
  var fs = require('fs');
  fs.writeFile('auth.json', JSON.stringify(data), function(error) {
    if(error) { 
      console.log('[write auth]: ' + err);
        if (fail)
          fail(error);
    } else {
      console.log('[write auth]: success');
        if (success)
          success();
    }
  });
}

但它从不调用回调。我查看了 nodeJS docsfs 的关系,似乎一切正常。此外,所有其他异步执行似乎都已停止。

这是我第一次在 nodeJS 中开发一些严肃的东西,所以我在这个环境中的经验并不多。

您的代码看起来不错,我通过简单地调用 writeAuthFile({test: 1}); 复制粘贴并 运行 它,创建了文件 auth.json。 那么,mb 错误更高? 在 var fs = require('fs'); 行后添加 console.log 并测试。

我唯一看到的是,如果失败,它会尝试记录 "err" 而不是 "error"

if(error) {
    console.log('[write auth]: ' + err); //<-this should be "error" and not "err"

如果文件已经存在,则没有参数回调。承诺得到解决,没有关于成功的争论。如果您想检查文件是否已经存在,请使用文件句柄的另一个函数,然后使用 writefile。