什么是中間件?
比如流水線工作? 每個(gè)工人做的事情都很唯一? 如果要真正生產(chǎn)出一個(gè)手機(jī)
要經(jīng)過每一個(gè)工人的處理? 才能得到一個(gè)完整的手機(jī) 如果上一個(gè)工人對(duì)手機(jī)做了
一些修改? 那么這個(gè)修改也會(huì)保留到下一個(gè)工人手中? 工人之間共享的是這部手機(jī)
在應(yīng)用程序當(dāng)中,每一個(gè) 處理環(huán)節(jié)都是一個(gè)中間件
中間件之間 要共享數(shù)據(jù)
中間件要有先后的調(diào)用順序
數(shù)據(jù)如果想要從一個(gè)中間件 流轉(zhuǎn)到下一個(gè)中間件? 必須調(diào)用相關(guān)的方法才可以
1. 定義: 中間件是一個(gè)處理函數(shù)? 只不過這個(gè)函數(shù)比較特殊翔忽, 包含了三個(gè)參數(shù)英融,分別是req, res, `next`
注意: 中間件方法中的三個(gè)參數(shù):
req: 請(qǐng)求對(duì)象;
res: 響應(yīng)對(duì)象;
next: next()可以被調(diào)用, 表示調(diào)用下一個(gè)中間件方法;
2. Express框架中對(duì)中間件的分類
(1) 應(yīng)用級(jí)別的中間件: 掛載到app上的中間件 app.get('URL地址', (req, res, next) => {});
(2) 路由級(jí)別的中間件: 掛載到 router 對(duì)象上的中間件 router.get('URL地址', (req, res, next) => {});
(3) 錯(cuò)誤級(jí)別的中間件: 回掉函數(shù)中盏檐, 有四個(gè)參數(shù) app.use(err, req, res, next) => {});
(4) 唯一內(nèi)置的中間件: express.static();
(5) 第三方中間件: 非express框架提供的,需要程序員手動(dòng)安裝才能使用的中間件; body-parser 解析post表單數(shù)據(jù).
第一次在簡(jiǎn)書上發(fā)隨筆驶悟,文章的不足之處還請(qǐng)各位大佬多多指教 !