84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
如题,express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?这不用我们管吗?如果我们 有2个自定义中间件有顺序要求,那应该怎么定义呢?
学习是最好的投资!
假设你请求的路径是 `/user',并且此时有如下两个路由同时匹配中你的请求。那么
理论上,这两个路由匹配中的中间件都会执行
后面中间件是否执行,取决于前一个中间件,是否有调用next()
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的数组来维护这个次序的。
stack
xx.stack.push(fn1); xx.stack.push(fn2)
把先调用的中间件写在前面就好了,就是这么直接。
假设你请求的路径是 `/user',并且此时有如下两个路由同时匹配中你的请求。那么
理论上,这两个路由匹配中的中间件都会执行
后面中间件是否执行,取决于前一个中间件,是否有调用
next()
express内部是通过一个叫做
stack
的数组来维护这个次序的。把先调用的中间件写在前面就好了,就是这么直接。