【发布时间】:2019-05-31 06:55:12
【问题描述】:
我正在开发一组使用 Node.js Express 构建的 RESTful API 服务,当它遇到错误时,会出现堆栈跟踪:
错误:没有指定默认引擎,也没有提供扩展。
我已经阅读了几篇关于在 app.js 中处理错误的预期代码的 Stack Overflow 文章:
// 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: {}
});
});
但是,对于默认引擎,StackOverflow 建议侧重于将 Vue 与 Jade 结合使用。
这是一个内部 RESTful API 服务,我不希望在 Jade 中添加默认引擎输出错误响应。
建议?
这是来自我的 RESTful API 服务的示例堆栈跟踪:
[09:22:42] info: GET /api/v1/archives/google/folders 401 130ms
Error: No default engine was specified and no extension was provided.
at new View (/Users/jeff/github/jeff00/act-archive/node_modules/express/lib/view.js:61:11)
at Function.render (/Users/jeff/github/jeff00/act-archive/node_modules/express/lib/application.js:570:12)
at ServerResponse.render (/Users/jeff/github/jeff00/act-archive/node_modules/express/lib/response.js:1008:7)
at /Users/jeff/github/jeff00/act-archive/app.js:137:7
at Layer.handle_error (/Users/jeff/github/jeff00/act-archive/node_modules/express/lib/router/layer.js:71:5)
【问题讨论】:
标签: node.js rest express error-handling