Node Express RESTful API по умолчанию для обработки ошибок - PullRequest
0 голосов
/ 04 января 2019

Я работаю над набором сервисов 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)

1 Ответ

0 голосов
/ 04 января 2019

Вы используете res.render вызовы, из-за чего Express ожидает, что для приложения будет установлен механизм рендеринга. Удалите res.render и сделайте что-то вроде res.json, и эта ошибка не появится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...