一、概念(來自官網)
中介軟體函式能夠訪問請求物件 (req
)、響應物件 (res
) 以及應用程式的請求/響應迴圈中的下乙個中介軟體函式。下乙個中介軟體函式通常由名為next
的變數來表示。
中介軟體函式可以執行以下任務:
如果當前中介軟體函式沒有結束請求/響應迴圈,那麼它必須呼叫next()
,以將控制權傳遞給下乙個中介軟體函式。否則,請求將保持掛起狀態。
參考文章:
二、自定義中介軟體
假如要寫乙個中介軟體,使用者每次訪問頁面都需要判斷他是否有登入,或者還有其他對使用者的檢驗,則可以寫乙個中介軟體去處理,
//checkuser.js
module.exports =function () );
return
; }
//這裡還可以寫很多檢測使用者的邏輯。。。。
next();
}};
var checkuser= require('./checkuser.js');
當然要想在路由層級使用它也是一樣的
三、錯誤處理的中介軟體
1.錯誤處理中介軟體函式的定義方式與其他中介軟體函式基本相同,差別在於錯誤處理函式有四個自變數而不是三個,專門具有特徵符(err, req, res, next)
res.send(
'errorstatus:
' + (err.status || 500) + '
error:
' + msg + '');
res.end();
})當有錯誤發生的時候,會跳過所有的普通中介軟體,但是不會跳過錯誤處理中介軟體
2.如何觸發錯誤處理中介軟體?
方法一:直接用next進行傳遞
var err = new error('
not found');
err.status = 404
; next(err);
});方法二:直接throw
var err = new error('
not found');
err.status = 404
;
throw
err;
});
express中介軟體的理解
參考 express中介軟體分為三種內建中介軟體 自定義中介軟體 第三方中介軟體 express內建中介軟體 express.static 是express目前唯一內建的乙個中介軟體。用來處理靜態資源檔案.2.express自定義中介軟體 中介軟體使用時的第二個引數是乙個function req,r...
express 中介軟體的理解
乙個請求傳送到伺服器,要經歷乙個生命週期,服務端要 監聽請求 解析請求 響應請求,伺服器在處理這一過程的時候,有時候就很複雜了,將這些複雜的業務拆開成乙個個子部分,子部分就是乙個個中介軟體。對於處理請求來說,在響應發出之前,可以對請求和該級響應做一些操作,並且可以將這個處理結果傳遞給下乙個處理步驟 ...
express中介軟體
中介軟體的本質就是乙個請求處理方法 函式 該方法接收三個引數 request請求物件 response響應物件 next下乙個中介軟體 把使用者從請求到響應的整個過程分發到多個中介軟體去處理。同乙個請求所經過的中介軟體的請求物件和響應物件都是同乙個請求物件和相應物件 不關心請求路徑和請求方法的中介軟...