我可以重用express.js错误视图吗?

时间:2012-04-16 08:28:48

标签: express

当express无法找到视图时,它会出错并且(在调试模式下)呈现一个漂亮的页面。有没有一种方便的方法可以将该视图重用于我自己的错误消息?

1 个答案:

答案 0 :(得分:1)

我不知道如何重用视图,但您可以使用error.stack来渲染堆栈跟踪。

我有这样的事情:

app.all( '*', function(req, res){
  var code = 404;
  res.local('error', { type: 'http', code: code });
  res.local('code', code );
  res.render('errors/index', { status: code } );
});

app.error(function(err, req, res, next){

  var code;

  if( err.type === 'http' ){
    code = err.error;
  } 
  else {
    code = 500;
  };

  if(err){
    res.local('stack', err.stack || JSON.stringify(err, null, 2) );
  };

  res.local('code', code );
  res.render('errors/index', { status: code } );

});

如果我需要像404那样手动设置,请在我的视图中执行以下操作:

next( {type:'http', error: 404} );

这就是我的观点中有类型检查的地方。

相关问题