2016-06-24 21 views
0

我已經開始使用MEANJS技術。我一直不清楚身體分析和快速會話的一些功能。我也通過他們的官方網站,但不是很清楚。該功能是: -如何工作身體分析器和快速會話NodeJs中間件功能

bodyParser.urlencoded({ extended:true});

bodyParser.json()

expressSession({重新保存:真,saveUninitialized:真,})

在某些地方它會bodyParser.urlencoded({ extended: false })expressSession({ resave: false, saveUninitialized: false, })。現在,當使用這些boolean時,請用示例對此進行說明。所以它會更清楚。

回答

4

中間件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: falseextended: true的區別已在this answer中解釋。

中間件express-session

這個中間件提供了一種簡單的方法來處理您的明確應用會話和會話數據。這兩個配置屬性resavesaveUninitialized影響express-session存儲用戶的會話數據的方式。

示例:假設新用戶正在訪問您的網站。 express-session檢測到此用戶尚未擁有會話,因此它將創建一個僅包含會話ID且不包含數據的新用戶。如果您設置saveUninitialized: true,則此會話將存儲在會話存儲中,而不包含任何實際會話數據。 saveUninitialized: false會在實際包含某些值時立即存儲會話。 (簡單地說)

示例:現在假定具有現有會話的用戶正在訪問您的網站。請求一些資源,但用戶的會話數據不會更改。 resave: true無論如何都會存儲未更改的數據,而resave: false則不會。

摘要:設置app.use(expressSession({resave: false, saveUninitialized: false}));會減少會話存儲的訪問次數,這對硬件資源和性能有利。所以在大多數情況下,您會希望將它們設置爲false