Node.js 如何处理..未处理的';错误';nodejs中的事件

Node.js 如何处理..未处理的';错误';nodejs中的事件,node.js,Node.js,我得到下面的错误,我也知道它是抛出的,因为server.log文件不存在 但是我想知道的是如何以编程的方式处理这个错误,就像我们对unCaughtException所做的那样 process.on('unCaughtException', function(err){ logger.error(err1) }) 下面是错误,我得到: events.js:141 throw er; // Unhandled 'error' event ^ Error: ENOTDIR: no

我得到下面的错误,我也知道它是抛出的,因为
server.log
文件不存在

但是我想知道的是如何以编程的方式处理这个错误,就像我们对
unCaughtException
所做的那样

process.on('unCaughtException', function(err){
    logger.error(err1)
})

下面是错误,我得到:

events.js:141
  throw er; // Unhandled 'error' event
  ^

Error: ENOTDIR: not a directory, stat '../logs/server.log'
at Error (native)
下面是引发此错误的实际代码

module.exports = new winston.Logger({
transports: [
new winston.transports.File({
  level: 'info',
  filename: '../logs/server.log',
  json: false,
  maxsize: 5242880, //5MB
  maxFiles: 2,
  colorize: false
}),
new winston.transports.Console({
  level: 'debug',
  json: false,
  colorize: true
})
],
exitOnError: false
});

从代码判断,您使用的事件发射器在发生错误时发出
错误
事件,在这种情况下,您需要侦听这些事件:

someLibrary({ logfile : '../logs/server.log' }).on('error', function(err) {
  ...handle the error...
});
更多信息

编辑:在Winston的特定情况下,应将
错误
事件处理程序附加到传输实例:

module.exports = new winston.Logger({
  transports: [
    new winston.transports.File({
      level: 'info',
      filename: '../logs/server.log',
      json: false,
      maxsize: 5242880, //5MB
      maxFiles: 2,
      colorize: false
    }).on('error', function(err) {
      console.error(err.stack);
    }),
    new winston.transports.Console({
      level: 'debug',
      json: false,
      colorize: true
    })
  ],
  exitOnError: false
});

感谢robert的快速建议…是的,我正在使用winston moudle进行配置logger@Vikash查看有关Winston的详细信息(尽管我不知道这是否适用于Winston本身抛出的错误).我浏览了u共享的链接…我会尝试确定..但这看起来更像是处理异常..不是错误..是否有其他简单的方法来处理此…在下面的链接中。。。给定,我尝试了…logger.on('error',function(err){/*Do Something*/});但这不起作用uncaughtException事件名称错误,uncaughtException是正确的名称。(这是评论,不是回答)