node.js - express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?
PHPz
PHPz 2017-04-17 14:47:22
0
2
622

如题,express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?这不用我们管吗?如果我们 有2个自定义中间件有顺序要求,那应该怎么定义呢?

PHPz
PHPz

学习是最好的投资!

全部回覆(2)
小葫芦

假設你要求的路徑是 `/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)
巴扎黑

把先呼叫的中間件寫在前面就好了,就是這麼直接。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!