国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

編寫(xiě)中間件以用于 Express 應(yīng)用程序

這篇具有很好參考價(jià)值的文章主要介紹了編寫(xiě)中間件以用于 Express 應(yīng)用程序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

概述

中間件函數(shù)能夠訪問(wèn)請(qǐng)求對(duì)象?(req)、響應(yīng)對(duì)象?(res) 以及應(yīng)用程序的請(qǐng)求/響應(yīng)循環(huán)中的下一個(gè)中間件函數(shù)。下一個(gè)中間件函數(shù)通常由名為?next?的變量來(lái)表示。

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

  • 執(zhí)行任何代碼。
  • 對(duì)請(qǐng)求和響應(yīng)對(duì)象進(jìn)行更改。
  • 結(jié)束請(qǐng)求/響應(yīng)循環(huán)。
  • 調(diào)用堆棧中的下一個(gè)中間件。

如果當(dāng)前中間件函數(shù)沒(méi)有結(jié)束請(qǐng)求/響應(yīng)循環(huán),那么它必須調(diào)用?next(),以將控制權(quán)傳遞給下一個(gè)中間件函數(shù)。否則,請(qǐng)求將保持掛起狀態(tài)。

以下示例顯示中間件函數(shù)調(diào)用的元素:

編寫(xiě)中間件以用于 Express 應(yīng)用程序,中間件,express

中間件函數(shù)適用的 HTTP 方法。

中間件函數(shù)適用的路徑(路由)。

中間件函數(shù)。

中間件函數(shù)的回調(diào)自變量,按約定稱(chēng)為“next”。

中間件函數(shù)的 HTTP?響應(yīng)自變量,按約定稱(chēng)為“res”。

中間件函數(shù)的 HTTP?請(qǐng)求自變量,按約定稱(chēng)為“req”。

以下是“Hello World”Express 應(yīng)用程序的簡(jiǎn)單示例,將為其定義兩個(gè)中間件函數(shù):


var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000);

開(kāi)發(fā)

以下是稱(chēng)為“myLogger”的中間件函數(shù)的簡(jiǎn)單示例。此函數(shù)僅在應(yīng)用程序的請(qǐng)求通過(guò)它時(shí)顯示“LOGGED”。中間件函數(shù)會(huì)分配給名為?myLogger的變量。


var myLogger = function (req, res, next) {
  console.log('LOGGED');
  next();
};

請(qǐng)注意以上對(duì)?next()?的調(diào)用。調(diào)用此函數(shù)時(shí),將調(diào)用應(yīng)用程序中的下一個(gè)中間件函數(shù)。?next()?函數(shù)不是 Node.js 或 Express API 的一部分,而是傳遞給中間件函數(shù)的第三自變量。next()?函數(shù)可以命名為任何名稱(chēng),但是按約定,始終命名為“next”。為了避免混淆,請(qǐng)始終使用此約定。

要裝入中間件函數(shù),請(qǐng)調(diào)用?app.use()?并指定中間件函數(shù)。 例如,以下代碼在根路徑 (/) 的路由之前裝入?myLogger?中間件函數(shù)。


var express = require('express');
var app = express();

var myLogger = function (req, res, next) {
  console.log('LOGGED');
  next();
};

app.use(myLogger);

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000);

應(yīng)用程序每次收到請(qǐng)求時(shí),會(huì)在終端上顯示消息“LOGGED”。

中間件裝入順序很重要:首先裝入的中間件函數(shù)也首先被執(zhí)行。

如果在根路徑的路由之后裝入?myLogger,那么請(qǐng)求永遠(yuǎn)都不會(huì)到達(dá)該函數(shù),應(yīng)用程序也不會(huì)顯示“LOGGED”,因?yàn)楦窂降穆酚商幚沓绦蚪K止了請(qǐng)求/響應(yīng)循環(huán)。

中間件函數(shù)?myLogger?只是顯示消息,然后通過(guò)調(diào)用?next()?函數(shù)將請(qǐng)求傳遞到堆棧中的下一個(gè)中間件函數(shù)。

下一個(gè)示例將名為?requestTime?的屬性添加到請(qǐng)求對(duì)象。我們將此中間件函數(shù)命名為“requestTime”。


var requestTime = function (req, res, next) {
  req.requestTime = Date.now();
  next();
};

現(xiàn)在,該應(yīng)用程序使用?requestTime?中間件函數(shù)。此外,根路徑路由的回調(diào)函數(shù)使用由中間件函數(shù)添加到?req(請(qǐng)求對(duì)象)的屬性。


var express = require('express');
var app = express();

var requestTime = function (req, res, next) {
  req.requestTime = Date.now();
  next();
};

app.use(requestTime);

app.get('/', function (req, res) {
  var responseText = 'Hello World!';
  responseText += 'Requested at: ' + req.requestTime + '';
  res.send(responseText);
});

app.listen(3000);

您向應(yīng)用程序根發(fā)出請(qǐng)求時(shí),此應(yīng)用程序當(dāng)前在瀏覽器中顯示請(qǐng)求的時(shí)間戳記。

因?yàn)槟鷵碛姓?qǐng)求對(duì)象、響應(yīng)對(duì)象、堆棧中的下一個(gè)中間件函數(shù)以及整個(gè) Node.js API 的訪問(wèn)權(quán),所以中間件函數(shù)的可能性是無(wú)窮的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-693811.html

到了這里,關(guān)于編寫(xiě)中間件以用于 Express 應(yīng)用程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 93 # 實(shí)現(xiàn) express 錯(cuò)誤處理中間件

    93 # 實(shí)現(xiàn) express 錯(cuò)誤處理中間件

    上一節(jié)實(shí)現(xiàn)了 express 的中間件,這一節(jié)來(lái)實(shí)現(xiàn)錯(cuò)誤處理中間件 執(zhí)行某一步出錯(cuò)了,統(tǒng)一規(guī)定調(diào)用 next 傳遞的參數(shù)就是錯(cuò)誤信息 先看 express 實(shí)現(xiàn)的demo 然后去訪問(wèn): http://localhost:3000/ 錯(cuò)誤處理中間價(jià),里面必須要有 4 個(gè) 參數(shù)(取函數(shù)的長(zhǎng)度),放到棧的最底下 下面實(shí)現(xiàn)處理邏

    2024年02月07日
    瀏覽(28)
  • 【Express】文件上傳管理 multer 中間件

    Multer是Node.js中用于處理文件上傳的中間件。它可以幫助你處理文件上傳的相關(guān)邏輯,如接收和保存上傳的文件、限制文件大小、設(shè)置文件類(lèi)型限制等。只能用于處理 multipart/form-data 類(lèi)型的表單數(shù)據(jù),它主要用于上傳文件。 下面是使用Multer中間件的基本步驟: 安裝multer:在命

    2024年02月07日
    瀏覽(24)
  • express學(xué)習(xí)筆記5 - 自定義路由異常處理中間件

    express學(xué)習(xí)筆記5 - 自定義路由異常處理中間件

    修改router/index.js,添加異常處理中間件 完整代碼 創(chuàng)建 utils/constant:(為了方便后期統(tǒng)一維護(hù),單獨(dú)拉出來(lái)定義) 然后刷新http://localhost:8000/user ?這就完成了

    2024年02月14日
    瀏覽(30)
  • express中間件當(dāng)做前端服務(wù)器的安全漏洞處理

    使用express當(dāng)做node服務(wù)器時(shí),發(fā)現(xiàn)安全漏洞,記錄處理步驟: PS:以下安全內(nèi)容處理,需要使用到redis進(jìn)行會(huì)話存儲(chǔ)、請(qǐng)求計(jì)數(shù)、請(qǐng)求唯一限制等。為盡量確保開(kāi)發(fā)環(huán)境與部署環(huán)境一致,請(qǐng)開(kāi)發(fā)環(huán)境安裝并啟動(dòng)Redis服務(wù)。 ** 此文檔只是說(shuō)明記錄關(guān)鍵步驟。具體實(shí)現(xiàn)代碼可參照附

    2024年03月27日
    瀏覽(27)
  • 【node.js從入門(mén)到精通】使用express創(chuàng)建web服務(wù)器,路由,進(jìn)行中間件的創(chuàng)建鏈接路由及其他中間件

    【node.js從入門(mén)到精通】使用express創(chuàng)建web服務(wù)器,路由,進(jìn)行中間件的創(chuàng)建鏈接路由及其他中間件

    目錄 前言 初識(shí)express 使用express創(chuàng)建基本的web服務(wù)器 初識(shí)express路由 路由匹配概念 路由模塊化 中間件 中間件和路由的區(qū)別 定義中間件函數(shù) 中間件作用? ?局部生效中間價(jià) 中間件分類(lèi) ?1.應(yīng)用級(jí)別中間件 ?2.路由級(jí)別的中間件 ?3.錯(cuò)誤級(jí)別中間件 ?4.內(nèi)置中間件 ?5.自定義中間

    2024年02月02日
    瀏覽(62)
  • 使用Go編寫(xiě)HTTP中間件

    使用Go編寫(xiě)HTTP中間件

    在Go語(yǔ)言中,HTTP中間件是一種處理HTTP請(qǐng)求和響應(yīng)的函數(shù),它可以攔截到請(qǐng)求并對(duì)其進(jìn)行處理,然后再將請(qǐng)求傳遞給下一個(gè)中間件或目標(biāo)處理程序。HTTP中間件在Web應(yīng)用程序中非常常見(jiàn),它提供了一種機(jī)制來(lái)執(zhí)行各種任務(wù),例如身份驗(yàn)證、授權(quán)、日志記錄和錯(cuò)誤處理等。 下面是

    2024年01月23日
    瀏覽(26)
  • node 第十四天 基于express的第三方中間件multer node后端處理用戶上傳文件

    Multer 是一個(gè) node.js 中間件,用于處理 multipart/form-data 類(lèi)型的表單數(shù)據(jù),它主要用于上傳文件。它是寫(xiě)在 busboy 之上的所以非常高效。 前面我們已經(jīng)知道了怎樣利用express提供的靜態(tài)資源處理中間件 express.static() 處理用戶請(qǐng)求靜態(tài)資源文件(圖片, js, css等) 接下來(lái)學(xué)習(xí)如何處理用

    2024年02月06日
    瀏覽(23)
  • 77 # koa 中間件的應(yīng)用

    77 # koa 中間件的應(yīng)用

    調(diào)用 next() 表示執(zhí)行下一個(gè)中間件 洋蔥模型: 輸出: 135642 添加異步等待 輸出: 132 kaimo313 564 koa 中要求每個(gè) next 方法前面都必須增加 await 否則不存在等待效果 會(huì)取中間件第一個(gè)執(zhí)行完的結(jié)果 koa 的中間件原理:會(huì)將所有的中間件組合成一個(gè)大的 promise,當(dāng)這個(gè) promise 執(zhí)行完

    2024年02月09日
    瀏覽(22)
  • ActiveMQ消息中間件應(yīng)用場(chǎng)景

    ActiveMQ消息中間件應(yīng)用場(chǎng)景

    一、ActiveMQ簡(jiǎn)介 ? ActiveMQ是Apache出品,最流行的,能力強(qiáng)勁的開(kāi)源消息總線。ActiveMQ是一個(gè)完全支持JMS1.1和J2EE1.4規(guī)范的JMS Provide實(shí)現(xiàn)。盡管JMS規(guī)范出臺(tái)已經(jīng)是很久的事情了,但是JMS在當(dāng)今的J2EE應(yīng)用中仍然扮演這特殊的地位。 ? 二、ActiveMQ應(yīng)用場(chǎng)景 消息隊(duì)列在大型電子商務(wù)類(lèi)網(wǎng)

    2024年02月15日
    瀏覽(26)
  • 分布式消息中間件RocketMQ的應(yīng)用

    分布式消息中間件RocketMQ的應(yīng)用

    所有代碼同步至GitCode:https://gitcode.net/ruozhuliufeng/test-rocketmq.git 普通消息 消息發(fā)送分類(lèi) ? Producer對(duì)于消息的發(fā)送方式也有多種選擇,不同的方式會(huì)產(chǎn)生不同的系統(tǒng)效果。 同步發(fā)送消息 ? 同步發(fā)送消息是指,Producer發(fā)出一條消息后,會(huì)在收到MQ返回的ACK之后才發(fā)下一條消息。

    2024年02月05日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包