Я работаю над набором сервисов RESTful API, созданных с использованием Node.js Express, и когда возникает ошибка, трассировке стека предшествует:
Ошибка: не задан механизм по умолчанию и расширение не предоставлено.
Я прочитал несколько предыдущих статей о переполнении стека об ожидаемом коде в app.js для обработки ошибок:
// 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.
Это внутренняя служба API RESTful, и я бы предпочел не добавлять обработчик ошибок по умолчанию в Jade.
Рекомендации
Это пример трассировки стека из моей службы API RESTful:
[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)