最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端需知nodejs?express中間件使用及定義詳解

 更新時間:2022年10月19日 09:19:04   作者:暴走的比卡丘  
這篇文章主要為大家介紹了前端需知nodejs?express中間件使用及定義詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

在上一節(jié)中我們簡單了解了express的路由,本文主要分析下express的另一個核心功能中間件的使用。路由是express整個框架能有如今廣泛使用和發(fā)展的基礎(chǔ),那中間件就是其發(fā)展的養(yǎng)分。正是express豐富的中間件才節(jié)省了我們大量的開發(fā)時間。

中間件的定義

對于express來說,中間件其實就是一個規(guī)定了入?yún)⒑统鰠⒌腏avaScript函數(shù),這個函數(shù)可以處理請求request和返回response相關(guān)的參數(shù),其功能如下:

  • 執(zhí)行任何代碼。
  • 處理請求和返回對象并返回新的。
  • 結(jié)束本次請求。
  • 調(diào)用next函數(shù)執(zhí)行下一個中間件。 定義中間件的示例如下:
 //處理請求對象的:請求參數(shù)重插入個參數(shù)
const myMiddleware = function (req, res, next) {
  console.log('this is a middleware')
  req.requestTime = Date.now()
  next()
}

可配置的中間件,目前這種中間件在我們實際應(yīng)用中比較多,比如經(jīng)典expressJWT bodyParser中間件

module.exports = function (options) {
  return function (req, res, next) {
    // 根據(jù)傳入的參數(shù)執(zhí)行一些操作
    next()
  }
}

中間件的使用

  • 中間件注冊:使用app.use或app.METHOD進行中間件注冊。
  • 中間按使用類型可以分為以下幾種:
    • 常規(guī)型:應(yīng)用層中間件、路由層中間件、內(nèi)置中間件、第三方中間件
    • 錯誤處理:錯誤處理中間件

  • 中間件整個執(zhí)行流程圖大概如上圖:注冊中間件和路由=》生成路由與中間件的映射=》客戶端請求=》執(zhí)行應(yīng)用層中間件=》匹配路由=》執(zhí)行異常中間件或路由映射的中間件,內(nèi)置中間件和第三方中間件的執(zhí)行流程根據(jù)其所定義的位置來執(zhí)行。
  • 應(yīng)用層中間件:使用 app.use() 和 app.METHOD() 函數(shù)將應(yīng)用層中間件綁定到應(yīng)用程序?qū)ο蟮膶嵗?,一般寫在?yīng)用最前面
var app = express();
app.use(function (req, res, next) {
  ******
  next();
});
  • 路由器層中間件:路由層中間件和應(yīng)用層類似,主要差別是路由中間件綁定的是express.Router()上。在復(fù)雜的項目中拆分路由時候常用
let express = require('express');
let router = express.Router();
router.post('/download/**/', function (req, res, next) {
    ******
});
  • 內(nèi)置中間件:自 V4.x 起,Express 不再依賴于 Connect。除 express.static 外,先前 Express 隨附的所有中間件函數(shù)現(xiàn)在以單獨模塊的形式提供。請查看中間件函數(shù)的列表。
const express = require('express');
const app = express();
app.use(express.urlencoded({extended: false}));
  • 第三方中間件:這一種中間件是我們使用最多的中間件,用于增加和擴展路由器的功能。使用一般是npm install安裝=》引入=》使用。如下:morgan是一個開源的express日志處理中間件
const morgan = require('morgan')
app.use(morgan('short'));
  • 錯誤處理中間件:此種中間件和其他幾種的最大不同是函數(shù)中采用了四個變量,第一個變量是錯誤信息的返回。在項目的最后我們經(jīng)常會加上如下缺省錯誤處理,用于捕獲程序異常:
app.use((err, req, res, next) => {
  if (res.headersSent) {
    return next(err);
  }
  res.status(500);
  res.render('error', { error: err });
});

總結(jié)

express中間件的思想不緊緊方便了開發(fā),這種設(shè)計也是我們系統(tǒng)高內(nèi)聚低耦合多思想實踐之一。在我們?nèi)粘5臉I(yè)務(wù)開發(fā)中也可以參照這種設(shè)計來實現(xiàn)需求。

以上就是前端需知nodejs express中間件使用及定義詳解的詳細(xì)內(nèi)容,更多關(guān)于前端nodejs express中間件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何在NestJS中添加對Stripe的WebHook驗證詳解

    如何在NestJS中添加對Stripe的WebHook驗證詳解

    這篇文章主要為大家介紹了如何在NestJS中添加對Stripe的WebHook驗證詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • nodejs的HTML分析利器node-jquery用法淺析

    nodejs的HTML分析利器node-jquery用法淺析

    這篇文章主要介紹了nodejs的HTML分析利器node-jquery用法,簡單分析了node-jquery的功能并結(jié)合實例說明了node-jquery控制臺輸出信息的操作技巧,需要的朋友可以參考下
    2016-11-11
  • nodejs使用express創(chuàng)建一個簡單web應(yīng)用

    nodejs使用express創(chuàng)建一個簡單web應(yīng)用

    這篇文章主要介紹了nodejs使用express創(chuàng)建一個簡單web應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • node版本下報錯build: `vue-cli-service build`問題及解決

    node版本下報錯build: `vue-cli-service build`問題及解決

    這篇文章主要介紹了node版本下報錯build: `vue-cli-service build`問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • node.js接口復(fù)習(xí)及使用案例解析

    node.js接口復(fù)習(xí)及使用案例解析

    這篇文章主要為大家介紹了node.js接口的復(fù)習(xí)及使用案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • node通過npm寫一個cli命令行工具

    node通過npm寫一個cli命令行工具

    本篇文章主要介紹了node通過npm寫一個cli命令行工具 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Node.js自動生成API文檔的實現(xiàn)

    Node.js自動生成API文檔的實現(xiàn)

    本文主要介紹了Node.js自動生成API文檔,包含基于swagger-jsdoc+swagger-ui-express快速實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • nodeJs內(nèi)存泄漏問題詳解

    nodeJs內(nèi)存泄漏問題詳解

    由于內(nèi)存泄漏在Node.js中非常的常見,可能在瀏覽器中應(yīng)用javascript時,對于其內(nèi)存泄漏不是特別敏感,但作為服務(wù)器語言運行時,你就不得不去考慮這些問題。
    2016-09-09
  • Nodejs如何搭建Web服務(wù)器

    Nodejs如何搭建Web服務(wù)器

    這篇文章主要介紹了Nodejs如何搭建Web服務(wù)器,本文教大家使用 Nodejs搭建一個簡單的Web服務(wù)器,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 基于node搭建服務(wù)器,寫接口,調(diào)接口,跨域的實例

    基于node搭建服務(wù)器,寫接口,調(diào)接口,跨域的實例

    今天小編就為大家分享一篇基于node搭建服務(wù)器,寫接口,調(diào)接口,跨域的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

嘉定区| 自贡市| 佛学| 定远县| 盐亭县| 呈贡县| 洪洞县| 乌拉特后旗| 英德市| 阳朔县| 青田县| 长兴县| 永康市| 报价| 本溪| 华池县| 大方县| 郸城县| 富川| 监利县| 塔河县| 巫溪县| 铁力市| 元朗区| 吉林市| 罗定市| 阜新市| 德格县| 宜都市| 府谷县| 宜昌市| 浏阳市| 从江县| 苗栗市| 伊金霍洛旗| 门头沟区| 友谊县| 泰和县| 宁明县| 叙永县| 双辽市|