这是问题的背景:我正在使用Koa 2跟踪开球 koa。但是开球中的练习是为 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';
无法修改页面。
感谢您的帮助!