nodeExpress的中間件舉例分析

本篇內(nèi)容主要講解“node Express的中間件舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“node Express的中間件舉例分析”吧!

在開江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,開江網(wǎng)站建設(shè)費(fèi)用合理。

node Express的中間件舉例分析

Express是一個(gè)簡(jiǎn)潔而靈活的Web應(yīng)用程序開發(fā)框架,可以用來快速地搭建一個(gè)功能完整的Web應(yīng)用程序;作為一個(gè)基于Node.js封裝的上層服務(wù)框架,Express提供了更簡(jiǎn)潔的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的中間件舉例分析

中間件分類

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
    }
}

到此,相信大家對(duì)“node Express的中間件舉例分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

本文標(biāo)題:nodeExpress的中間件舉例分析
文章起源:http://muchs.cn/article36/isjepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈做網(wǎng)站、電子商務(wù)、網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站