大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了koa怎么进行错误捕捉和返回,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联公司是专业的杜尔伯特网站建设公司,杜尔伯特接单;提供网站建设、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行杜尔伯特网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
示例:
const Koa = require('koa2'); const router = require('koa-router')(); const app = new Koa(); /** * 错误捕捉中间件 */ app.use(async(ctx, next) => { try { ctx.error = (code, message) => { if (typeof code === 'string') { message = code; code = 500; } ctx.throw(code || 500, message || '服务器错误'); }; await next(); } catch (e) { let status = e.status || 500; let message = e.message || '服务器错误'; ctx.response.body = { status, message }; } }); app.use(require('koa-bodyparser')()); app.listen(3000); console.log('start at port 3000...');
这段代码启动了koa,并有一个中间件来专门处理koa错误。在中间件里,我是给ctx对象添加了一个error方法,接收错误编号和错误内容,也可以不写错误编号,默认500,当执行ctx.error方法时,就会抛出一个异常,这样,在其他的路由或中间件里,代码执行到ctx.error时就会直接跳回到我的错误捕捉中间件,ctx.error后面的代码就不会再执行了。
使用方法也很简单。
router.get('/',async(ctx)=>{ if(!ctx.request.query.project){ ctx.error('Project not found!'); //ctx.error(12345,'Project not found!') 这样也可以,明确指出当错误编码为12345时代表project字段未找到 } .... //逻辑处理 .... ctx.response.body = res; });
就是直接调用ctx.error方法。当调用这个方法后,if后面的逻辑处理就不会再执行了。
感谢你能够认真阅读完这篇文章,希望小编分享的“koa怎么进行错误捕捉和返回”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!