2

質問の背景は次のとおりです。私はKoa 2を使用してキックオフ コアをフォローしています。しかし、キックオフの演習は Koa 1 用に設計されています。Koa 2 のこの問題に対して問題を作成しました: Koa 2のエラー ハンドラのタスクはパスできません

要するに、私の問題は、500 エラーが発生したときにカスタム エラー ページを表示する方法です。

コードは次のとおりです。

// error handler middleware
function errorHandler(ctx, next) {
  try {
   return next();
  }
  catch(err) {
    ctx.status = err.status || 500;
    // I would like to display the custom message as follows     
    ctx.body = 'Oops! internal server error';   
    // with emitting the error event, don't work
    // ctx.app.emit('error', err, ctx);      
  }
}

// to generate error
app.use(router.get('/error', ctx => {
  ctx.throw('oops', 500);
}));

しかし、私のエラーページは常に「内部サーバーエラー」として表示されます。これはデフォルトのメッセージです。ctx.body = 'Oops! internal server error';ページを変更できなかったようです。

助けてくれてありがとう!

4

1 に答える 1