我有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
,而不提供堆栈跟踪。有没有办法启用堆栈跟踪?
答案 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
});
});