Express 中間件原理,就這?
今天在搞 express 的時候,用到了中間件函數。至于它的概念和使用技巧,我們就不提了。我只是對這個中間件函數內部的結構很感興趣。所以今天就和大家一起聊聊這個中間件函數的原理。
使用技巧
在使用中間件函數的時候,有兩個地方我們需要注意:一個是 app.use() 添加一個中間件函數,一個是回調函數中的 next() 這種特有的標志,它的意思很簡單就是代表下一個中間件函數執行。
思路分析
通過使用之后,我們大致能明白,內部有個存放中間件函數的東西,并且這是個數組。所以我們就簡單實現一下這個過程。
在 express 中都是通過 callback 回調函數去執行中間件函數,我們這里就簡單模擬一個 compose 函數,實現所有中間件函數的調用。
fnmiddle() 執行就是調用 compose 的返回函數,它里面要對 middleware 數組中的所有函數處理,在這個返回函數內,我們使用遞歸的方式來實現一下這個流程。
這樣一個中間件函數的大致原理就出來了,整體理解起來還是比較簡單的,不過中間件思想在 web 的覆蓋范圍還是很廣的,你能列舉出來并寫出大致的思路嗎.