为了账号安全,请及时绑定邮箱和手机立即绑定

有没有童鞋遇到过同样的问题:koa-router内部使用中间件感激不尽

有没有童鞋遇到过同样的问题:koa-router内部使用中间件感激不尽

蓝山帝景 2019-08-25 23:31:07
之前定义路由一般是这么用的:router.get('/',function(ctx,next){ctx.body='hellohello';})最近看到了一种用法,在方法参数中加入了一个中间件:router.get('/',(ctx,next)=>{returnUser.findOne(ctx.params.id).then(function(user){ctx.user=user;next();});},ctx=>{console.log(ctx.user);//=>{id:17,name:"Alex"}});为什么能这样用,难道说router.get的方法定义不是死的吗?如何做到中间可以支持中间件的吗?另外中间件的注册不是一般都是app.use(),为什么在这里也能用中间件?
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

只要正确处理好ctx就行了。koa中间件不是什么神奇的东西,说白了就是下面这个函数
functionmiddleware(ctx,next){
//处理ctx
next();//继续调用下一个
}
全局中间件(任何请求都会走进来)
路由中间件(匹配请求路径和请求方法才走进来)
                            
查看完整回答
反对 回复 2019-08-25
  • 2 回答
  • 0 关注
  • 290 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信