fs.writeFile() doesn't return callback

17k Views Asked by At

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.

3

There are 3 best solutions below

5
Daniel On BEST ANSWER

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.

0
LightWing On

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"
0
Faza Aulia Rosyadan On

there is no param callback if file already exist. and the promise is resolved with no argument upon success. if you wanna check file already exist use another function of filehandle then writefile.enter image description here enter image description here