错误代码 - 985ch/egg-sachikawa GitHub Wiki

当开发者需要在接口文件中使用ctx.fail方法返回一个错误的时候,他们就会需要一个错误代码code作为参数。这个错误代码可以是一个数字常量,但是一般我们更推荐使用Application.errCode来代替它。

ctx.fail('没有正确的返回', ctx.app.errCode.UNDEFINED_BODY);

比起一个数字常量,这种写法提升了代码的可读性,而统一管理的errCode也可以制作成文档供请求方查阅。

框架内置错误代码

错误名 错误代码 含义
SUCCESS 0 请求成功,并且没有发生错误
UNKNOWN -1 未知错误。通常是出现了一个未捕获的错误。这种情况通常需要让开发者根据开发日志进行排查
UNDEFINED_BODY -1 接口没有设置返回数据。由于同样需要开发者进行排查,因此在框架中并没有针对该错误做出特别的区分
INVAILD_PARAM 100 请求方传入了错误的参数。具体错情况误会附加在data中传回给请求方

自定义错误代码

开发者可以在自己的项目中通过扩展脚本重新定义全部errCode。但是在重写errCode时必须包含上述所有框架默认错误。

// app/extend/application.js
exports.errCode = {
  SUCCESS: 200,
  UNKNOWN: 300,
  UNDEFINED_BODY: 300,
  INVAILD_PARAM: 400,
  INVAILD_USER: 401,
  INVAILD_PERMISSIONS: 403,
};