3

ここで説明するように、Expressでカスタムエラーページを使用しています。

しかし、それを行うと、エラーメッセージしか表示されません。デフォルトのExpressエラーハンドラー(スタックトレースなど)に表示されるのと同じ情報を取得したいので、次のことができます。

  1. それをコンソールに記録します(これをデフォルトのままにしておけば幸いです)。
  2. エラーページに表示しますが、ローカルホストの場合のみです。

どうすればよいですか?

4

2 に答える 2

7

これは@generalhenryの回答からの修正版です。スタックトレースにアクセスしerr.stackて、「500」ビューに渡し、いくつかの凝った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;
});
于 2013-04-18T09:00:19.160 に答える
0

ミドルウェアに提供されたエラーを使用するだけです

  // Handle 500
  app.use(function(error, req, res, next) {
     console.error(error);
     if (ISLOCALHOST()) {
       res.json(error, 500);
     } else {
       res.send('500: Internal Server Error', 500);
     }
  });
于 2013-03-27T08:23:18.020 に答える