91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node Express的中間件舉例分析

發布時間:2021-11-26 09:45:29 來源:億速云 閱讀:177 作者:iii 欄目:web開發

本篇內容主要講解“node Express的中間件舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“node Express的中間件舉例分析”吧!

node Express的中間件舉例分析

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

中間件的概念

中間件,就是將請求處理函數進行模塊化分解后的若干子處理函數,一些列子處理函數可以形成一個中間件堆棧;

中間件,是在應用程序的請求-響應周期中能夠訪問請求對象req、響應對象res和next()函數的函數,next()函數主要負責將控制權交給下一個中間件;如果當前中間件沒有終結請求,并且next()沒有被調用,那么請求將被掛起,后面定義的中間件將不會被執行。、

中間件的執行順序,嚴格按照注冊的順序從上到下開始匹配執行。

中間件函數,可以執行以下任務:

  • 執行任何代碼

  • 對請求和響應對象進行修改

  • 終結請求-響應周期

  • 調用堆棧中下一個中間件(next)

中間件的主要用途就是處理HTTP請求,用來完成特定的任務如登錄狀態驗證、請求日志、錯誤處理、Cookie等。

node Express的中間件舉例分析

中間件分類

1 應用程序級中間件

使用app.use()函數將應用程序級中間件綁定到應用對象實例上

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

2 路由級中間件

路由級中間件與應用程序級中間件的工作方式相同,只是它被綁定到路由器實例上

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 錯誤處理中間件

錯誤處理中間件總是需要4個參數,必須提供4個參數來將其標識為錯誤處理中間件函數。即使不需要next函數,也必須指定它。否則next函數被解釋為常規中間件,并且無法處理錯誤

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

4 內置中間件

Express具有以下內置中間件:

  • express.static: 提供靜態資源服務

  • express.router: 提供路由服務

5 第三方中間件

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

6 自定義中間件

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

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

到此,相信大家對“node Express的中間件舉例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南丹县| 怀远县| 东山县| 贵南县| 永寿县| 松潘县| 湄潭县| 武城县| 南陵县| 灵台县| 梅河口市| 应用必备| 美姑县| 金寨县| 汝阳县| 昌宁县| 宜川县| 手游| 泰来县| 通州市| 伊川县| 古田县| 阿克陶县| 招远市| 三门峡市| 庆城县| 义马市| 南雄市| 禹城市| 磐石市| 加查县| 广水市| 卢湾区| 垫江县| 宁津县| 体育| 仁怀市| 三门峡市| 密云县| 临澧县| 吉木乃县|