亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    node Express學(xué)習(xí)之聊聊中間件

    本篇文章帶大家了解一下node中Express的中間件,介紹一下中間件的概念、中間件分類,希望對(duì)大家有所幫助!

    node Express學(xué)習(xí)之聊聊中間件

    Express是一個(gè)簡潔而靈活的Web應(yīng)用程序開發(fā)框架,可以用來快速地搭建一個(gè)功能完整的Web應(yīng)用程序;作為一個(gè)基于Node.js封裝的上層服務(wù)框架,Express提供了更簡潔的API,通過中間件路由使應(yīng)用程序的組織管理更加容易。

    中間件的概念

    中間件,就是將請(qǐng)求處理函數(shù)進(jìn)行模塊化分解后的若干子處理函數(shù),一些列子處理函數(shù)可以形成一個(gè)中間件堆棧;

    中間件,是在應(yīng)用程序的請(qǐng)求-響應(yīng)周期中能夠訪問請(qǐng)求對(duì)象req、響應(yīng)對(duì)象res和next()函數(shù)的函數(shù),next()函數(shù)主要負(fù)責(zé)將控制權(quán)交給下一個(gè)中間件;如果當(dāng)前中間件沒有終結(jié)請(qǐng)求,并且next()沒有被調(diào)用,那么請(qǐng)求將被掛起,后面定義的中間件將不會(huì)被執(zhí)行。、

    中間件的執(zhí)行順序,嚴(yán)格按照注冊(cè)的順序從上到下開始匹配執(zhí)行。

    中間件函數(shù),可以執(zhí)行以下任務(wù):

    • 執(zhí)行任何代碼
    • 對(duì)請(qǐng)求和響應(yīng)對(duì)象進(jìn)行修改
    • 終結(jié)請(qǐng)求-響應(yīng)周期
    • 調(diào)用堆棧中下一個(gè)中間件(next)

    中間件的主要用途就是處理HTTP請(qǐng)求,用來完成特定的任務(wù)如登錄狀態(tài)驗(yàn)證、請(qǐng)求日志、錯(cuò)誤處理、Cookie等。

    node Express學(xué)習(xí)之聊聊中間件

    中間件分類

    1 應(yīng)用程序級(jí)中間件

    使用app.use()函數(shù)將應(yīng)用程序級(jí)中間件綁定到應(yīng)用對(duì)象實(shí)例上

    const app = express(); /*表示匹配任何路由*/ app.use(function(req,res,next){     console.log('請(qǐng)求時(shí)間:' +  Date.now());     /*表示匹配完成這個(gè)中間件就繼續(xù)往下執(zhí)行。*/     next() })

    2 路由級(jí)中間件

    路由級(jí)中間件與應(yīng)用程序級(jí)中間件的工作方式相同,只是它被綁定到路由器實(shí)例上

    import express from 'express';  const app = express();  const router = express.router();  router.use(   '/user',   function (req, res, next) {     console.log(1);     next();   },   function (req, res, next) {     console.log(2);     next();   },   function (rex, res, next) {     console.log(3);     next();   } );

    3 錯(cuò)誤處理中間件

    錯(cuò)誤處理中間件總是需要4個(gè)參數(shù),必須提供4個(gè)參數(shù)來將其標(biāo)識(shí)為錯(cuò)誤處理中間件函數(shù)。即使不需要next函數(shù),也必須指定它。否則next函數(shù)被解釋為常規(guī)中間件,并且無法處理錯(cuò)誤

    app.use(function(err, req, res, next){     console.log(err.stack);     res.status(500).send(err); })

    4 內(nèi)置中間件

    Express具有以下內(nèi)置中間件:

    • express.static: 提供靜態(tài)資源服務(wù)
    • express.router: 提供路由服務(wù)

    5 第三方中間件

    第三方中間件如body-parser、cookie-parser等

    6 自定義中間件

    自定義中間件被定義為一個(gè)函數(shù),接受req,res,next參數(shù),使用app.use()注冊(cè)中間件

    function log(req,res,next) {     req.requestTime = Date.now();     next() } // 注冊(cè)自定義中間件 app.use(log);
    // 自定義可配置中間件 function log(options) {     return function (req,res,next) {         // 根據(jù)options實(shí)現(xiàn)中間件功能         next     } }

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)