1

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

4

1 回答 1

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} );

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

于 2012-05-11T17:38:06.637 回答