fs.writeFile() doesn't return callback

2019-04-27 03:19发布

I'm trying to write a file with the users authentication data to the disk. To achieve this I wrote the following function:

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();
    }
  });
}

But it never calls the callback. I looked at the nodeJS docs for fs and it all seems to check out. Also all other asynchronous execution seems to have halted.

This is the first time I'm developing something serious in nodeJS so my experience in this environment is not that much.

2条回答
Emotional °昔
2楼-- · 2019-04-27 03:47

Your code looks fine, I copy&paste and run it by simply calling writeAuthFile({test: 1});, file auth.json was created. So, mb error somewhere higher? add console.log after var fs = require('fs'); line and test.

查看更多
对你真心纯属浪费
3楼-- · 2019-04-27 03:55

the only thing i see thats off, is that if it fails it tries to log "err" instead of "error"

if(error) {
    console.log('[write auth]: ' + err); //<-this should be "error" and not "err"
查看更多
登录 后发表回答