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

express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?

express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?

www说 2018-10-11 17:14:35
如题,express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?这不用我们管吗?如果我们 有2个自定义中间件有顺序要求,那应该怎么定义呢?
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

把先调用的中间件写在前面就好了,就是这么直接。

查看完整回答
反对 回复 2018-10-25
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

假设你请求的路径是 `/user',并且此时有如下两个路由同时匹配中你的请求。那么

  1. 理论上,这两个路由匹配中的中间件都会执行

  2. 后面中间件是否执行,取决于前一个中间件,是否有调用next()

app.get('/user', function(req, res, next){ 
   console.log('1');
    next();
});

app.get('/user', function(req, res, next){ 
   console.log('2');
    res.send('user');
});

express内部是通过一个叫做stack的数组来维护这个次序的。

xx.stack.push(fn1);
xx.stack.push(fn2)


查看完整回答
反对 回复 2018-10-25
  • 2 回答
  • 0 关注
  • 1063 浏览

添加回答

举报

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