Node.js Express中間件理解及中間件分類和作用
更新時間:2026年04月28日 09:00:24 作者:前端小超人rui
文章主要介紹了Express中間件的概念和使用,包括中間件的核心作用、標(biāo)準(zhǔn)形式、分類、定義以及內(nèi)置中間件和第三方中間件的例子,以及它們的價值,總的來說,文章詳細(xì)介紹了Express中間件的相關(guān)知識和應(yīng)用
中間件:攔截HTTP請求的函數(shù)
一 核心作用
- 請求到達(dá)路由前執(zhí)行操作(如解析、校驗)
- 響應(yīng)發(fā)送前執(zhí)行操作(如日志、處理)
- 中間件的標(biāo)準(zhǔn)形式:
function middleware(req,res,next){
//處理邏輯(解析/校驗等)
next() ;//傳遞控制權(quán)給下一個中間件/路由
}
- Express應(yīng)用本質(zhì)是中間件鏈組合,每個請求從頭到尾以此處理
二 中間件分類
- 應(yīng)用程序級中間件
- 通過app.use()掛載,作用于全局或路徑
- 用于統(tǒng)一處理解析、日志、安全等全局邏輯
app.use(express.json()) // 解析JSON 請求體
//全局日志記錄
app.use((req,res,next)=>{
console.log(`[${Date.now()}]${req.method}${req.url}`)
next()
})
- 路由級中間件
- 掛載在express.Router()實例上,僅作用當(dāng)前路由模塊
- 用于模塊化組織業(yè)務(wù)邏輯
const router =express.Router()
router.use((req,res,next)=>{
console.log('進(jìn)入用戶模塊')
next()
})
app.use('/users',router)
- 錯誤處理中間件
- 定義:捕獲并處理錯誤,必須接收四個參數(shù)(err,req,res,next)
- 統(tǒng)一返回錯誤響應(yīng),提升系統(tǒng)健壯性
//錯誤中間件
app.use(()=>{
res.send({
status:1,
msg:err instanceof Error?err.message:err,
})
})
- 內(nèi)置中間件
- 定義:Express原生提供,無需額外安裝
- 例子
- express.static(‘public’):托管靜態(tài)資源
- express.json():解析JSON 請求體
- express.urlencoded();解析請求體數(shù)據(jù)
- 第三方中間件
- 社區(qū)開發(fā),npm 安裝擴(kuò)展功能
- 例子
- 數(shù)據(jù)驗證:express-validator
- 文件上傳:multer
- 解決跨域問題:cors
- 價值;副高高頻需求、成熟可靠
到此這篇關(guān)于Node.js Express中間件理解及中間件分類和作用的文章就介紹到這了,更多相關(guān)Node.js Express中間件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp
Gulp是一個在使用上比Grunt更加簡潔的自動化工具(文中附有對比),和Node的npm包管理器配合使用非常方便,下面就記錄一下在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp的方法:2016-06-06
Windows系統(tǒng)下Node.js的簡單入門教程
這篇文章主要介紹了Windows系統(tǒng)下Node.js的簡單入門教程,Node.js是用于后端編程的JavaScript框架,需要的朋友可以參考下2015-06-06
Node.js服務(wù)端實戰(zhàn)之服務(wù)啟動過程詳解
這篇文章主要為大家介紹了Node.js服務(wù)端實戰(zhàn)之服務(wù)啟動過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Nodejs?Sequelize手冊學(xué)習(xí)快速入門到應(yīng)用
這篇文章主要為大家介紹了Nodejs?Sequelize手冊學(xué)習(xí)快速入門到應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10

