中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Express4.x中間件特性有什么

發布時間:2020-12-03 09:28:01 來源:億速云 閱讀:128 作者:小新 欄目:web開發

這篇文章給大家分享的是有關Express4.x中間件特性有什么的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

Express 應用程序基本上是一系列中間件函數調用中間件是在管道中執行的。你可以想象一個送水的真實管道。水從一端泵入,然后在到達目的地之前還會經過各種儀表和閥門。這個比喻中很重要的一部分是順序問題,你把壓力表放在閥門之前和之后的效果是不同的。同樣,如果你有個向水中注入什么東西的閥門,這個閥門“下游”的所有東西都會含有這個新添加的原料。在 Express 程序中,通過調用app.use 向管道中插入中間件。

在 Express 4.0 之前,這個管道有些復雜,因為必須顯式地把路由器連進來。取決于你在哪里連入路由器,路由的連入可以不按順序來,這使得當你把中間件和路由處理器混在一起時,管道的順序就更不清晰了。在 Express 4.0 中,中間件和路由處理器是按它們的連入順序調用的,順序更清晰。

路由處理器(app.get、app.post 等,經常被統稱為 app.VERB)可以被看作只處理特定HTTP 謂詞(GET、POST 等)的中間件。同樣,也可以將中間件看作可以處理全部 HTTP謂詞的路由處理器(基本上等同于 app.all,可以處理任何 HTTP 謂詞;對于 PURGE 之類特別的謂詞會有細微的差別,但對于普通的謂詞而言,效果是一樣的)。

路由處理器的第一個參數必須是路徑。如果你想讓某個路由匹配所有路徑,只需用 /*。 中間件也可以將路徑作為第一個參數,但它是可選的(如果忽略這個參數,它會匹配所 有路徑,就像指定了 /* 一樣)

路由處理器和中間件的參數中都有回調函數,這個函數有 2 個、3 個或 4 個參數(從技術上講也可以有 0 或 1 個參數,但這些形式沒有意義)。如果有 2 個或 3 個參數,頭兩個參數是請求和響應對象,第三個參數是 next 函數。如果有 4 個參數,它就變成了錯誤處理中間件,第一個參數變成了錯誤對象,然后依次是請求、響應和 next 對象。如果不調用 next(),管道就會被終止,也不會再有處理器或中間件做后續處理。

如果你不調用 next(),則應該發送一個響應到客戶端(res.send、res.json、res.render 等); 如果你不這樣做,客戶端會被掛起并最終導致超時。如果調用了 next(),一般不宜再發送響應到客戶端。如果你發送了,管道中后續的中間件或路由處理器還會執行,但它們發送的任何響應都會被忽略。

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

var requestTime = function (req, res, next) {
  req.requestTime = Date.now()
  console.log(req.requestTime );
  next()
}
var requestUser = function (req, res, next) {
  console.log('welcome');
  next()
}

app.use(requestTime)
app.get('/', function (req, res) {
  console.log('//welcome');
  var responseText = 'Hello World!<br>'
  responseText += '<small>Requested at: ' + req.requestTime + '</small>'
  res.send(responseText)
})
app.use(requestUser)
app.listen(3000)

訪問 127.0.0.1:3000 輸出 時間 和 //welcome 不會執行 requestUser  中間件的代碼1552630945571//welcome

感謝各位的閱讀!關于Express4.x中間件特性有什么就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

简阳市| 博客| 镇原县| 嘉鱼县| 凉城县| 南开区| 蒙山县| 图木舒克市| 建德市| 万宁市| 西青区| 化德县| 枣阳市| 潞西市| 莎车县| 辉南县| 阿巴嘎旗| 剑阁县| 四平市| 辰溪县| 恩施市| 宜昌市| 进贤县| 宁城县| 鄂尔多斯市| 武安市| 通渭县| 当阳市| 廊坊市| 石嘴山市| 城口县| 阳城县| 定结县| 招远市| 涿鹿县| 江门市| 精河县| 凤台县| 泸水县| 金坛市| 旌德县|