Node Express RESTful API默认引擎用于错误处理

时间:2019-01-04 17:17:25

标签: node.js rest express error-handling

我正在使用Node.js Express构建一组RESTful API服务,当遇到错误时,将在堆栈跟踪之前加上以下内容:

  

错误:未指定默认引擎,也未提供扩展名。

我已经阅读了几篇关于“堆栈溢出”的文章,内容涉及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结合使用。

这是内部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)

1 个答案:

答案 0 :(得分:2)

您正在使用res.render调用,因为Express希望为此应用程序设置一个渲染引擎。删除res.render并执行类似res.json的操作,就不会出现此错误。

相关问题