??????管道機(jī)制一開始是UNIX中出現(xiàn)的求橄,一個(gè)程序的輸出直接成為下一個(gè)程序的輸入坪圾,就像水流過管道一樣方便(類似于函數(shù)式編程中的filter或者一切皆對(duì)象的鏈?zhǔn)讲僮鳎┐温叶鄠€(gè)單一功能的函數(shù)通過管道組合成復(fù)合函數(shù)(UNIX的“KISS”原則)。
?????? nodejs中的管道座菠,有一個(gè)形象的比喻是包含水泵仪媒,儀表沉桌,閥門的下水管道,當(dāng)前水流入位置的下游(直到出口)的函數(shù)按順序連接(如果你有個(gè)向水中注入什么東西的閥門算吩,這個(gè)閥門“下游”的所有東西都會(huì)含有這個(gè)新添加的原料app.use())留凭,這個(gè)概念類似于OOP的一種設(shè)計(jì)模式,一個(gè)包含一些屬性的對(duì)象實(shí)例經(jīng)過一個(gè)類(初始化)中時(shí)偎巢,這個(gè)類依此生成的對(duì)象也具有這些屬性(裝飾器模式蔼夜?)
????? nodejs中的管道應(yīng)該是對(duì)上下文敏感的,考慮到TCP/IP的連接压昼,斷開連接的單向性求冷,可以把這種管道看成是模塊化的復(fù)合函數(shù)翠订,包含有特定的上下文信息。
?????? 針對(duì)HTTP謂詞的DSL遵倦。
?????? 路由處理器(app.get ,app.post等,經(jīng)常被統(tǒng)稱為app.VERB),是中間件的子集(只處理特定HTTP謂詞的中間件)官撼。
???????? next()很靈活梧躺,既可以進(jìn)行錯(cuò)誤處理,又可以作為接下來函數(shù)的入口鉤子傲绣,和CPS有點(diǎn)類似掠哥。
???????