当前位置: 首页 > 后端技术 > Node.js

Koav2.x中文文档错误处理

时间:2023-04-04 01:23:18 Node.js

错误处理本系列文章的应用示例已发布在GitHub上:koa-docs-Zh-CN。您可以通过Fork帮助改进或Star以关注更新。欢迎使用Star.Try-Catch使用异步方法意味着您可以接下来尝试捕获。此示例为所有错误添加一个.status:app.use(async(ctx,next)=>{try{awaitnext();}catch(err){err.status=err.statusCode||err.status||500;抛出错误;}});默认错误处理程序默认错误处理程序本质上是中间件链开头的try-catch。要使用不同的错误处理程序,只需将另一个try-catch放在中间件链的开头,并在那里处理错误。但是,默认错误处理程序对于大多数用例来说已经足够好了。它将使用状态代码err.status,默认情况下为500。如果err.expose为真,则err.message为回复。否则,将使用从错误代码生成的消息(例如,对于代码500,将使用消息“InternalServerError”)。将从请求中清除所有标头,但将设置err.headers中的任何标头。您可以使用上面的try-catch将标头添加到此列表。下面是创建您自己的错误处理程序的示例:app.use(async(ctx,next)=>{try{awaitnext();}catch(err){//将仅响应JSONctx.status=err.statusCode||err.status||500;ctx.body={message:err.message};}})错误事件错误事件监听器可以用app.on('error')指定。如果未指定错误侦听器,则使用默认错误侦听器。错误侦听器接收所有中间件链返回的错误,如果错误被捕获但从未抛出,则不会传递给错误侦听器。如果未指定错误事件侦听器,则将使用app.onerror,如果error.expose为true且app.silent为false,它将简单地记录错误。如果本文对您有帮助,请在下方点赞或StarGitHub:koa-docs-Zh-CN支持,谢谢。