ndoejs中中介軟體的使用

2022-09-08 20:27:19 字數 2759 閱讀 5775

用以封裝,處理http請求的細節,讓我們去處理業務邏輯而不是底層的一些繁瑣細節

例如下面的**:

var router =

require

('./router'

)var express =

require

('express'

)var bodyparser =

require

('body-parser'

)express()

var fs =

require

('fs'

)use

('/node_modules/'

, express.

static

('./node_modules/'))

use(

'/public/'

, express.

static

('./public/'))

engine

('html'

,require

('express-art-template'))

use(bodyparser.

urlencoded()

)use

(bodyparser.

json()

)use

(router)

listen

(3000

,function()

)

其中的use,engine就是內建的一些中介軟體,它對傳入的目錄/檔案/等等,進行處理並返回方法

中介軟體的分類:

應用程式級別中介軟體:

var express =

require

('express'

)express()

// 中介軟體:處理請求,本質就是個處理函式

// 在express中對中介軟體有很多分類

// 不關心請求路徑和請求方法的中介軟體

// 也就是說任何請求都會進入這個中介軟體

// 中介軟體本身是乙個方法,該方法接受三個引數

// request請求物件

// response響應物件

// next下乙個中介軟體

// 這裡如果中介軟體中沒有next(),那麼是不會進入下乙個中介軟體

console.log('1')

next()

}) console.log('2')

next()

}) */

console.log('first next')

next()

})*/

// 關心請求路徑的中介軟體:

// 所有以/a開頭的,都會請求過來

// 但是此時在下面得的中介軟體中輸出req.url時,它是不包含/a的,處理時會自動去除

// console.log('is running at port 3000');

console.log(req.url);

res.send('/a路徑請求')

}) console.log('second next 第二次,沒有匹配的')

next()

}) */

// 以/b開頭的會進來

// console.log('is running at port 3000');

console.log(req.url);

res.send('/b路徑請求')

}) */

// 上面的是應用程式級別的中介軟體

listen

(3000

,function()

)

其中有幾種匹配方式:

// 萬能匹配的模式

use(

function

(req, res, next))

// 匹配開頭的:

// 只有以 /a 開頭的才會進來:

use(

'/a'

,function

(req, res

))

要注意其中傳入的引數:next

乙個中介軟體中傳入了next引數,並且在其中呼叫了next()

那麼在執行完該中介軟體之後,會呼叫下乙個匹配的中介軟體:

use(

function

(req, res, next))

use(

'/a'

,function

(req, res))

use(

function

(req, res, next))

在上面中,第乙個中介軟體被呼叫之後:

路由器級別中介軟體

// 除了上面的中介軟體之外,還有一種最常用的

// 嚴格匹配請求方法和請求路徑的中介軟體:

// 下面的是路由器級別的中介軟體

get(

'/',

function

(req, res, next))

get(

'/a'

,function

(req, res, next

))

上面這些中介軟體是只有以指定字串開頭的才會進入該中介軟體

中介軟體使用

express是乙個自身功能極簡,完全是路由和中介軟體構成乙個web開發框架 乙個express應用就是在呼叫各種中介軟體。中介軟體在express開發中很重要 中介軟體函式能夠訪問請求物件 req 響應物件 res 以及應用程式的請求 響應迴圈中的下乙個中介軟體函式 該next功能是中介軟體函式中...

Django中介軟體的使用?

django在中介軟體中預置了六個方法,這六個方法的區別在於不同的階段執行,對輸入或輸出進行干預,方法如下 1.初始化 無需任何引數,伺服器響應第乙個請求的時候呼叫一次,用於確定是否啟用當前中介軟體 def init pass 2.處理請求前 在每個請求上呼叫,返回none或httpresponse...

Django 中介軟體的使用

初始化 無需任何引數,伺服器響應第乙個請求的時候呼叫一次,用於確定是否啟用當前中介軟體 def init pass處理請求前 在每個請求上呼叫,返回 none 或 httpresponse 物件 def process request request pass處理檢視前 在每個請求上呼叫,返回 no...