中間件body-parser:
一般來說,這將中間件解析傳入的HTTP請求的機構和填充req.body
屬性是然後在路線和中間件可用。
body-parser
爲不同類型的請求體提供了不同的解析器。如果你寫了以下內容:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
第一app.use()
將包括JSON解析器體,第二個將包括URL編碼形式的身體解析器。您將需要的解析器取決於您的服務器必須處理的請求類型。有關extended: false
和extended: true
的區別已在this answer中解釋。
中間件express-session:
這個中間件提供了一種簡單的方法來處理您的明確應用會話和會話數據。這兩個配置屬性resave
和saveUninitialized
影響express-session
存儲用戶的會話數據的方式。
示例:假設新用戶正在訪問您的網站。 express-session
檢測到此用戶尚未擁有會話,因此它將創建一個僅包含會話ID且不包含數據的新用戶。如果您設置saveUninitialized: true
,則此會話將存儲在會話存儲中,而不包含任何實際會話數據。 saveUninitialized: false
會在實際包含某些值時立即存儲會話。 (簡單地說)
示例:現在假定具有現有會話的用戶正在訪問您的網站。請求一些資源,但用戶的會話數據不會更改。 resave: true
無論如何都會存儲未更改的數據,而resave: false
則不會。
摘要:設置app.use(expressSession({resave: false, saveUninitialized: false}));
會減少會話存儲的訪問次數,這對硬件資源和性能有利。所以在大多數情況下,您會希望將它們設置爲false
。