记录下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的错误处理逻辑,可以了,动起来吧.