我正在运行Express 3.5.3和节点0.10.29。当JSON未正确解析时,我希望应用程序崩溃并重新启动(使用monit)。不幸的是,当app.get处理程序内部时,应用程序不会崩溃。这是我的测试代码:
app.get("/api/pixel", function(req, res) {
res.send(getPixel(), { 'Content-Type': 'image/gif' }, 200);
JSON.parse("{123,adkljfl]")
});
我希望应用程序在尝试解析错误的JSON后崩溃,但事实并非如此。我很想知道为什么。
答案 0 :(得分:2)
您使用的是任何错误处理中间件吗?默认的快速脚手架有这些:
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});