快递路由器打印错误



我有一个路由器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,而不提供堆栈跟踪。是否有一种方法来启用堆栈跟踪?

最简单的方法是在定义完所有路由后创建一个"catch all"。如果你已经有一个,只需在这里记录错误。

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

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

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
    });
  });

最新更新