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



















 
 
 




 
 
 
 