如何处理(即记录)纠正错误

时间:2015-02-27 20:09:16

标签: node.js restify

在我们的restify应用程序中,当我们将错误传递给next时,会返回一个通用的500错误,这一切都很好。但是,我还需要在某处记录错误的详细信息,以便我知道发生了什么。

以前,我在一个快速应用程序上工作,集中的错误处理中间件使我们能够在接收错误时执行任何代码,例如日志记录。

"改善方式"集中记录错误详细信息?我不想在整个应用程序中撒上日志记录语句。

2 个答案:

答案 0 :(得分:5)

一旦为请求完成所有其他路由处理程序,Restify服务器对象将发出'after'事件。您可以将日志记录代码放在'after'事件处理程序中:

var svr = restify.createServer()
  .get('/hello-world', hello_world_hndlr)
  .on('after', function (req, resp, route, err) {
    // logging here
  })
  .listen(SVR_PORT)

答案 1 :(得分:2)

收听'after'的另一种方法是收听'restifyError'

server.on('restifyError', (req, res, err, cb) => {
  req.log.error(err)
  return cb();
});