大家怎么在 service 处理验证失败的信息?
資深大佬 : 2351988538 7
比如说注册用户用户名已存在之类的,这种信息怎么比较优雅的处理?
大佬有話說 (7)
service 中主动抛出自定义异常即可. 如: throw new ProjectException(“验证身份失败”);
抛出的异常会被处理器捕获,然后返回 {“code”:500, “message”:”验证身份失败”, data: null}
理论上, 抛出的可以是一个枚举,枚举包含一个错误码和一条错误信息
如果业务足够轻,不值得单独开辟一个 API 处理层,希望从 controller 层直接配置好 HTTP 状态码和返回信息,可以使用 http-error 或 http-assert 包来自动 throw error,并携带 HTTP 状态码和返回数据,然后在 API 路由上全局捕捉 error,直接把 http-error 携带的状态码和返回信息返回给客户端。
koa.js 内置了 http-assert/http-error 机制,http-assert 的所有方法都可以直接从 ctx ( Context )中调用。