资讯专栏INFORMATION COLUMN

Koa v2.x 中文文档 错误处理

zgbgx / 728人阅读

摘要:但是,默认错误处理程序对于大多数用例来说都是足够好的。错误侦听器接收所有中间件链返回的错误,如果一个错误被捕获并且不再抛出,它将不会被传递给错误侦听器。

错误处理

此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star.

Try-Catch

使用 async 方法意味着你可以 try-catch next.
此示例为所有错误添加了一个 .status

app.use(async (ctx, next) => {
  try {
    await next();
  } catch (err) {
    err.status = err.statusCode || err.status || 500;
    throw err;
  }
});
默认错误处理程序

默认的错误处理程序本质上是中间件链开始时的一个 try-catch。要使用不同的错误处理程序,只需在中间件链的起始处放置另一个 try-catch,并在那里处理错误。但是,默认错误处理程序对于大多数用例来说都是足够好的。它将使用状态代码 err.status,或默认为500。如果 err.expose 是 true,那么 err.message 就是答复。否则,将使用从错误代码生成的消息(例如,对于代码500,将使用消息“内部服务器错误”)。所有标头将从请求中清除,但是任何在 err.headers 中的标头将会被设置。你可以使用如上所述的 try-catch 来向此列表添加标头。

以下是创建你自己的错误处理程序的示例:

app.use(async (ctx, next) => {
  try {
    await next();
  } catch (err) {
    // will only respond with JSON
    ctx.status = err.statusCode || err.status || 500;
    ctx.body = {
      message: err.message
    };
  }
})
错误事件

错误事件侦听器可以用 app.on("error") 指定。如果未指定错误侦听器,则使用默认错误侦听器。错误侦听器接收所有中间件链返回的错误,如果一个错误被捕获并且不再抛出,它将不会被传递给错误侦听器。如果没有指定错误事件侦听器,那么将使用 app.onerror,如果 error.expose 为 true 并且 app.silent 为 false,则简单记录错误。

如果这篇文章对您有帮助, 感谢 下方点赞 或 Star GitHub: koa-docs-Zh-CN 支持, 谢谢.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89498.html

相关文章

  • Koa v2.x 中文文档

    摘要:的对象提供了用于处理响应的方法,该响应委托给。应用对象是与的服务器和处理中间件注册的接口,从发送到中间件,默认错误处理,以及上下文,请求和响应对象的配置。 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. showImg(https://segmentfault.com/img/bVNQYf...

    Cobub 评论0 收藏0
  • Koa v2.x 中文文档 Koa 对比 Express

    摘要:使用承诺和异步功能来摆脱回调地狱的应用程序,并简化错误处理。它暴露了自己的和对象,而不是的和对象。因此,可被视为的模块的抽象,其中是的应用程序框架。这使得中间件对于整个堆栈而言不仅仅是最终应用程序代码,而且更易于书写,并更不容易出错。 Koa 与 Express 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新...

    summerpxy 评论0 收藏0
  • Koa v2.x 中文文档Koa v1.x 迁移到 v2.x

    摘要:一个迁移方式是逐个更新它们。删除特定的日志记录行为对于环境的显式检查从错误处理中删除。直接或它不再使用并已废弃。支持仍然支持分支,但应该不会得到功能性更新。除了此迁移指南外,文档将针对最新版本。 从 Koa v1.x 迁移到 v2.x 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. 新的中...

    fancyLuo 评论0 收藏0
  • Koa v2.x 中文文档 上下文(Context)

    摘要:方法抛出一个属性默认为的错误,这将允许做出适当地响应。这用于修饰其人机友好型错误并向上游的请求者报告非常有用。请注意,不支持使用此功能。这可能会破坏中间件和本身的预期功能。 上下文(Context) 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. Koa Context 将 node 的 ...

    Arno 评论0 收藏0
  • Koa v2.x 中文文档 API

    此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. 相关 API 上下文(Context) 请求(Request) 响应(Response) 安装 Koa 依赖 node v7.6.0 或 ES2015及更高版本和 async 方法支持. 你可以使用自己喜欢的版本管理器快速安装支持的 node 版本:...

    mikasa 评论0 收藏0

发表评论

0条评论

zgbgx

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<