欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nodejs之Express中間件的分類介紹

 更新時間:2022年12月03日 14:02:41   作者:Hydrion-Qlz  
這篇文章主要介紹了Nodejs之Express中間件的分類,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

中間件的分類

為了方便大家理解和記憶中間件的使用,Express官方把常見的中間件用法,分成了5大類

分別是

  • 應用級別的中間件
  • 路由級別的中間件
  • 錯誤級別的中間件
  • Express內(nèi)置的中間件
  • 第三方的中間件

1 應用級別的中間件

通過app.use()或app.get()或app.post(),綁定到app實例上的中間件,叫做應用級別的中間件,代碼示例如下:

只要是直接通過app.xxx調用的,都可以理解為是應用級別的中間件

// 應用級別的中間件(全局中間件)
app.use((req, res, next) => {
? ? console.log("這是中間件函數(shù)")
? ? next()
})

// 應用級別的中間件(局部中間件)
app.get("/user", mw, (req, res) => {
? ? res.send('success')
})

2 路由級別的中間件

綁定到express.Router()實例上的中間件,叫做路由級別的中間件。

它的用法和應用級別中間件沒有任何區(qū)別。

只不過,應用級別中間件是綁定到app實例上,路由級別中間件綁定到router實例上,代碼示例如下:

const express = require("express")
const router = express.Router()

// 路由級別的中間件
router.use((req, res, next) => {
? ? console.log("Time: ", Date.now())
? ? next()
})

module.exports = router

3 錯誤級別的中間件

錯誤級別中間件的作用:專門用來捕獲整個項目中發(fā)生的異常錯誤,從而防止項目異常崩潰的問題。

格式:錯誤級別中間件的function處理函數(shù)中,必須有4個形參,形參順序從前到后,分別是(err, req, res, next)。

// 路由
app.get("/user", (req, res) => {
? ? throw new Error("服務器內(nèi)部發(fā)生了錯誤!")
? ? res.send("Home Page")
})

// 錯誤級別的中間件,捕獲整個項目的異常錯誤
app.use((err, req, res, next) => {
? ? console.log("Error: " + err.message)
? ? res.send("Error: " + err.message)
})

錯誤級別的中間件,必須注冊在所有路由之后,如果放在前面會導致在該中間件之后的錯誤無法被捕獲

4 Express內(nèi)置的中間件

自Express4.16.0版本開始,Express內(nèi)置了3個常用的中間件,極大的提高了Express項目的開發(fā)效率和體驗:

  • express.static快速托管靜態(tài)資源的內(nèi)置中間件,例如:HTML文件、圖片、CSS樣式等(無兼容性)
  • express.json解析SON格式的請求體數(shù)據(jù)(有兼容性,僅在4.16.0+版本中可用)
  • express.urlencoded解析URL-encoded格式的請求體數(shù)據(jù)(有兼容性,僅在4.16.0+版本中可用)
// 配置解析 application/json 格式數(shù)據(jù)的內(nèi)置中間件
app.use(express.json())

// 配置解析 application/x-www-form-urlencoded 格式數(shù)據(jù)的內(nèi)置中間件
app.use(express.urlencoded({ extended: false }))

app.post('/user', (req, res)=>{
?? ?// 在服務器, 可以使用 req.body 這個屬性,來接受客戶端端發(fā)過來的請求體數(shù)據(jù)
? ? // 在默認情況下,如果把配置解析表單數(shù)據(jù)的中間價, 則 req.body 默認等于 undefined
? ? console.log(req.body)
? ? res.send('ok')
})

除了錯誤級別的中間件,其他的中間件,必須在路由之前進行配置

5 第三方中間件

非Express官方內(nèi)置的,而是由第三方開發(fā)出來的中間件,叫做第三方中間件。在項目中,大家可以按需下載并配置第三方中間件,從而提高項目的開發(fā)效率。

例如:在express@4.16.0之前的版本中,經(jīng)常使用body-parser這個第三方中間件,來解析請求體數(shù)據(jù)。

使用步驟如下:

  • 運行npm install body-parser安裝中間件
  • 使用require導入中間件
  • 調用app.use()注冊并使用中間件

Express內(nèi)置的express…urlencoded中間件,就是基于body~parser這個第三方中間件進一步封裝出來的。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解NodeJs項目 CentOs linux服務器線上部署

    詳解NodeJs項目 CentOs linux服務器線上部署

    這篇文章主要介紹了NodeJs項目 CentOs linux服務器線上部署,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Nodejs處理Json文件并將處理后的數(shù)據(jù)寫入新文件中

    Nodejs處理Json文件并將處理后的數(shù)據(jù)寫入新文件中

    這篇文章主要介紹了Nodejs處理Json文件并將處理后的數(shù)據(jù)寫入新文件中,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Node.js中MongoDB查詢數(shù)據(jù)的方法

    Node.js中MongoDB查詢數(shù)據(jù)的方法

    在Node.js中,可以使用MongoDB驅動程序和Mongoose庫來進行MongoDB的查詢操作,本文就來介紹一下Node.js中MongoDB查詢數(shù)據(jù)的方法,感興趣的可以了解一下
    2023-12-12
  • Express實現(xiàn)定時發(fā)送郵件的示例代碼

    Express實現(xiàn)定時發(fā)送郵件的示例代碼

    在開發(fā)中我們有時候需要每隔?一段時間發(fā)送一次電子郵件,或者在某個特定的時間進行發(fā)送郵件,無需手動去操作,基于這樣的情況下我們需要用到了定時任務。本文就來用Express實現(xiàn)定時發(fā)送郵件吧
    2023-04-04
  • Node.js編碼規(guī)范

    Node.js編碼規(guī)范

    編碼規(guī)范比比皆是,但是很少有公司做好編碼規(guī)范的。忍不住想談談編碼規(guī)范的重要性,希望所有人都能夠重視起來。
    2014-07-07
  • node.js require() 源碼解讀

    node.js require() 源碼解讀

    學習 Node.js ,必學如何使用 require 語句。本文通過源碼分析,詳細介紹 require 語句的內(nèi)部運行機制,幫你理解 Node.js 的模塊機制
    2015-12-12
  • nodejs socket實現(xiàn)的服務端和客戶端功能示例

    nodejs socket實現(xiàn)的服務端和客戶端功能示例

    這篇文章主要介紹了nodejs socket實現(xiàn)的服務端和客戶端功能,結合具體實例形式分析了nodejs基于socket通信實現(xiàn)的服務端與客戶端功能相關操作技巧,需要的朋友可以參考下
    2017-06-06
  • node+js搭建時間服務器的思路詳解

    node+js搭建時間服務器的思路詳解

    這篇文章主要介紹了node+js搭建時間服務器,通過本文的學習可以了解node的fs模塊怎么讀取數(shù)據(jù)及express怎么搭建服務器,設置數(shù)據(jù)接口的,需要的朋友可以參考下
    2022-07-07
  • node.js中的buffer.toJSON方法使用說明

    node.js中的buffer.toJSON方法使用說明

    這篇文章主要介紹了node.js中的buffer.toJSON方法使用說明,本文介紹了buffer.toJSON的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js學習之查詢字符串解析querystring詳解

    Node.js學習之查詢字符串解析querystring詳解

    這篇文章主要給大家介紹了關于Node.js查詢字符串解析querystring的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用node.js具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-09-09

最新評論