koajs 异常处理 全局统一处理
记录下koajs的异常使用:
下面介绍一下 几个文件
test.js启动文件
router.js 路由文件
api/Admin.js 逻辑处理文件
koajs的异常处理逻辑代码如下[放在test.js 启动文件中]
/** * 统一处理默认Error */ app.use(function *(next) { try { yield next; } catch (err) { this.status = err.status; this.body = { name: "GowhichApiServerError", code: err.status || 600, message: err.message || "Server internal error.", success: false } } });
600 :我自己定义的,为了区别系统的错误
接下来简单的看下路由:
router.post('/xxx/xxxxx', Admin.mailxxxxImport); router.post('/xxxx/xxxx', Admin.mailxxxxBill);
这个router 我使用的是koa-router
好了, 到这里应该说一切都没问题了.下面就看我们如何出发这个错误了
那么在Admin.js里面我们写段代码:
module.exports.mailxxxxBill = function *(next){ var uid = _uid(this.request); var taskid = this.request.body.taskid; if (!uid || !taskid) { return this.throw('任务参数不能为空'); } //测试使用 return this.throw('任务参数不能为空'); }
没错就是这句代码:
this.throw('任务参数不能为空');
当触发的时候,就会调用test.js的错误处理逻辑,可以了,动起来吧.
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/666
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 Gowhich博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/666