Express中间件工作原理介绍
生活随笔
收集整理的這篇文章主要介紹了
Express中间件工作原理介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Express中間件工作原理介紹
- 中間件是Express框架學習中最難的部分,同時也是最為核心的技術,我們的學習路線如下
- 1.什么是中間件
- 2.Express中間件的本質及工作原理
- 3.自定義解析post請求參數的中間件
- 4.第三方中間件使用
1.1-什么是中間件
- 下圖是一個自來水凈化的過程,這張圖可以更好的理解什么是中間件
- 水庫的水并不是直接取出來就送到用戶的家中使用,而是經過一些凈化過濾處理之后才送到用戶的家中,在這個過程中水還是水,本質上還是同一個東西,但是卻多了一些東西
- 水庫中原始的水可以理解為是瀏覽器的原始請求request
- 最終用戶喝到的水可以理解為是express最終獲取的請求request
- 而過濾中的一些加絮凝劑、過濾池等操作就是中間件,可以理解為給我們原始的請求request添加了一些屬性或者方法(如post參數解析之后的對象等)
1.2-中間件的本質及工作原理
-
1.中間件其實就是一個函數
- function(req,res,next){ req:請求對象 res:響應對象 next:下一個中間件 }
-
2.Express如何使用中間件?:三種方式
? app.use('pathname',中間件) : ? pathname不寫: 任何請求路徑都會執行這個中間件 ? pathname寫了:任何以pathname開頭的請求路徑都會執行這個中間件 ? app.get('pathname',中間件) : 請求路徑為pathname的get請求會執行這個中間件 ? app.post('pathname',中間件) : 請求路徑為pathname的post請求會執行這個中間件
-
3.中間件工作流程(Express處理網絡請求流程)
? a.從上往下依次匹配請求路徑,如果匹配成功則執行該中間件 ? b.如果這個中間件中調用了:next() ,則會繼續往下匹配 ? c.如果所有的中間件都無法匹配,則會自動進入一個兜底的中間件響應返回404 not found錯誤
//導入模塊 const express = require('express'); //創建服務器 let app = express();/*1.什么是express中間件?: 其實就是一個函數(這個函數有三個參數)function(req,res,next){ req:請求對象 res:響應對象 next:下一個中間件 } *//*2.express如何使用中間件?: 三種方式 app.use('pathname',中間件) :pathname不寫: 任何請求路徑都會執行這個中間件pathname寫了:任何以pathname開頭的請求路徑都會執行這個中間件app.get('pathname',中間件) : 請求路徑為pathname的get請求會執行這個中間件app.post('pathname',中間件) : 請求路徑為pathname的post請求會執行這個中間件 *//* 3.express處理網絡請求的流程a.從上往下依次匹配請求路徑,如果匹配成功則執行該中間件b.如果這個中間件中調用了:next() ,則會繼續往下匹配c.如果所有的中間件都無法匹配,則會自動進入一個兜底的中間件響應返回404 not found錯誤 */app.use('/abc',(req,res,next)=>{//污水凈化第一步:添加絮凝劑console.log(11111);req.a = '添加了絮凝劑';next(); });app.use('/abc',(req,res,next)=>{//污水凈化第二步:添加活性炭console.log(22222);req.b = '添加活性炭';next(); });app.post('/abc',(req,res,next)=>{console.log(33333);next(); });app.get('/abc',(req,res,next)=>{console.log(44444);//看下污水凈化到這一步加了什么console.log(req.a);console.log(req.b);res.send('hello'); });//express底層有一個默認的兜底中間件,如果上面所有的中間件都無法匹配或者沒有結束響應,則會進入這個中間件 //自定義一個兜底中間件,覆蓋默認的 app.use((req,res)=>{console.log(55555);res.send('你的路徑是不是寫錯啦'); });//開啟服務器 app.listen(3000, () => {console.log('success'); });1.3-自定義解析post請求參數中間件
-
使用postman測試
-
bodyParse
- index.js
總結
以上是生活随笔為你收集整理的Express中间件工作原理介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS基础语法(05)-隐式数据类型转换
- 下一篇: nodejs服务端MVC架构介绍