Express路由器打印错误

时间:2015-08-18 18:08:19

标签: node.js express

我有Express.js这个路由器:

router.post("/last-update", function(req, res) {
  rules[req.body.route].last_update = req.body.date;
  log.info("Set Last Update " + route + " " + req.body.date);
  res.send({"statusCode": 200});
});

此代码会出错,因为第3行的route未定义。当我向/last-update发送POST请求时,node.js控制台仅记录内部错误500,而不提供堆栈跟踪。有没有办法启用堆栈跟踪?

2 个答案:

答案 0 :(得分:1)

最简单的方法是在定义所有路线后创建“全部捕获”。如果你已经有一个只是在这里记录错误。

app.use(function (err, req, res, next) {
    res.status(err.status || 500);
    res.send('error');
    console.log(err);
});

答案 1 :(得分:0)

找到记录错误的位置并添加:

console.log(err.stack, 'stack');

提示,使用Express Generator生成一个示例应用程序,您将看到一些有关如何捕获和提取错误信息的示例:

app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });