1.500错误
koa提供了ctx.throw()方法来抛出错误,ctx.throw(500)就是抛出500错误
const main = ctx => {
ctx.throw(500);
};
internal server error
2.404错误
ctx.response.status = 404;
ctx.throw(404);
page not found
3.处理错误的中间件
const handler = async (ctx, next) => {
try {
await next();
} catch (err) {
ctx.response.status = err.statusCode || err.status || 500;
ctx.response.body = {
message: err.message
};
}
}
4.error事件的监听
运行过程中一旦出错,Koa 会触发一个error事件。
app.on('error', (err, ctx) =>
console.error('server error', err);
);
5.释放error事件
如果错误被try...catch捕获,就不会触发error事件。这时,必须调用ctx.app.emit(),手动释放error事件,才能让监听函数生效。