'use strict'module.exports = (option, app) => {return async function (ctx, next) {try {await next()} catch (err) {// 所有的异常都在 app 上触发一个 error 事件,框架会记录一条错误日志app.emit('error', err, this)const status = err.status || 500// 生产环境时 500 错误的详细错误内容不返回给客户端,因为可能包含敏感信息const error = status === 500 && app.config.env === 'prod' ?'Internal Server Error' :err.message// 从 error 对象上读出各个属性,设置到响应中ctx.body = {code: status, // 服务端自身的处理逻辑错误(包含框架错误500 及 自定义业务逻辑错误533开始 ) 客户端请求参数导致的错误(4xx开始),设置不同的状态码error: error}if (status === 422) {ctx.body.detail = err.errors}ctx.status = 200}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。