如題,express中間件,他是如何知道哪個(gè)中間件先處理,哪個(gè)中間件后處理的?這不用我們管嗎?如果我們 有2個(gè)自定義中間件有順序要求,那應(yīng)該怎么定義呢?
2 回答

Smart貓小萌
TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
假設(shè)你請求的路徑是 `/user',并且此時(shí)有如下兩個(gè)路由同時(shí)匹配中你的請求。那么
理論上,這兩個(gè)路由匹配中的中間件都會執(zhí)行
后面中間件是否執(zhí)行,取決于前一個(gè)中間件,是否有調(diào)用
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內(nèi)部是通過一個(gè)叫做stack
的數(shù)組來維護(hù)這個(gè)次序的。
xx.stack.push(fn1); xx.stack.push(fn2)
- 2 回答
- 0 關(guān)注
- 1202 瀏覽
添加回答
舉報(bào)
0/150
提交
取消