node.js - 在 Express 的自定义错误处理程序中获取堆栈跟踪?

标签 node.js express

我在 Express 中使用自定义错误页面,如解释的那样 here .

但是当我这样做时,我只看到错误消息。我想获取与默认 Express 错误处理程序(堆栈跟踪等)中显示的相同信息,以便我可以:

  1. 将其记录到控制台(如果我可以为此保留默认值,我会很高兴)。
  2. 在错误页面上显示它,但仅限于本地主机。

我该怎么做?

最佳答案

这是@generalhenry 回答的修改版本。您可以访问堆栈跟踪 在 err.stack 中,这样您就可以将它传递给您的“500” View 并在其上做一些花哨的 css 样式。

app.use(function(err, req, res, next) {
   if (err instanceof NotFound) {
       res.render('errors/404');
   } else {
       res.render('errors/500', {error: err, stack: err.stack});
   }
});

function NotFound() {
   this.name = "NotFound";
   Error.call(this, msg);
   Error.captureStackTrace(this, arguments.callee);
}

// below all route handlers
// If all fails, hit em with the 404
app.all('*', function(req, res){
   throw new NotFound;
});

关于node.js - 在 Express 的自定义错误处理程序中获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508572/

相关文章:

node.js - 502 Bad Gateway 在 Elastic Beanstalk 上部署 Express Generator 模板

javascript - 来自填充文档的 Mongoose 求和字段

node.js - 如何在 Handlebars 内置 #if 助手中使用相等性

Node.js - JWT,API : How To Implement Multiple Passport. js 身份验证中间件?

node.js - Mongoose 通过引用 ID 查找

javascript - 为什么express会匹配两条路线?

javascript - 按测试列表过滤

javascript - 服务后和更新时 Angular 4 CLI 太慢

node.js - 在 React JS 中存储 API 根 Url 的最佳位置是什么?

node.js - Express.JS : Logout without destroying the session