84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如题,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
的陣列來維護這個次序的。把先呼叫的中間件寫在前面就好了,就是這麼直接。