uncaughtException然后appendFile出错会导致问题吗?的NodeJS

时间:2016-09-22 00:15:53

标签: javascript node.js asynchronous error-handling

我很好奇是否因为process.exit(1)处于异步的回调中 操作,appendFile,如果原始错误发生的地方将继续运行并处于不稳定状态。我试图将process.exit(1)与fs内联,但它不会写。

更好的方法来创建记录错误,将记录任何错误将不胜感激。

  const fs = require('fs');

  process.on('uncaughtException', e1 => {
    fs.appendFile('./logs/error.log', e1.stack, e2 => {
      //if (e1 || e2) console.log(e1,e2);

      process.exit(1)
    });

  })

1 个答案:

答案 0 :(得分:1)

按原样,看起来每次使用fs.appendFile完成时,程序都会以错误代码退出到控制台。 process.exit一旦遇到它就会杀死其他任何东西。

我可能会这样做:

const fs = require('fs');

process.on('uncaughtException', function (err) {
  fs.appendFile('./logs/error.log', err.stack, (fserr) => {
    if (err) console.log('FS ERROR', fserr); //now includes the fs error in log
    console.log(err); //maybe include error from uncaughtException?
    process.exit(1); //exit with error code
  });
});