deepexi-onerror
deepexi-onerror
is a koa-onerror middleware eggjs configurer for deepexi framework.
How To
安装依赖
$ npm i deepexi-onerror
通过configurer配置你的onerror中间件
// config.default.jsconst onerror = ;configonerror = ;
更多配置说明
configonerror =
异常处理规则
分为两类异常:业务异常和系统异常
业务异常
默认400, 401, 406等状态码被视为业务异常(可通过配置修改)。业务异常可以指定code,如果不指定默认为-1。业务异常具备以下特点:
- 一般是代码逻辑正确,但由于其它原因导致的操作失败,如接口调用参数错误,业务校验失败(例如新增的用户重名)等
- 业务异常的信息可以展示给前端用户看
- 每个业务异常会关联错误码(建议唯一),方便追溯
下面代码显示如何抛出一个业务异常
const err = 'biz err';errstatus = 406;// err.unsafeStatus = 430; // 效果等同status,不同的是status只支持标准的HTTP状态码,而unsafeStatus可以让你使用非标准的HTTP状态码(如430)errcode = 'DO-999';throw err;
业务异常抛出后会被处理为以下格式
系统异常
其它状态码为系统异常,如果不指定,则默认处理为500。系统异常具备以下特点:
- 一般意味着服务端代码错误
- 具体错误信息不会展示给前端用户
- 非生产环境会有堆栈信息返回,方便问题排查
下面代码显示如何抛出一个系统异常
throw 'system err';
系统异常抛出后会被处理为以下格式