84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
如题,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
的数组来维护这个次序的。把先调用的中间件写在前面就好了,就是这么直接。