koa错误处理

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事件,才能让监听函数生效。

你可能感兴趣的:(koa错误处理)