我有一个路由器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
});
});