2014-07-19 32 views
0

我使用express.cookieParserexpress.session經歷this short tutorial on sessions in Express瞭解快遞會議

app.use(express.cookieParser()); 
app.use(express.session({secret: '1234567890QWERTY'})); 

有這樣一段話:

Sessions are accessible through the request object in each route. You can get and set 
properties just like you would when handling an object normally. For example, lets set 
some session data in the awesome route. 

app.get('/awesome', function(req, res) { 
    req.session.lastPage = '/awesome'; 
    res.send('Your Awesome.'); 
}); 

兩個問題:

  1. 會議中提到的req.sesssion是一個發送給客戶端的cookie,包含由node/express創建的一個sessionID,現在它得到的請求發回。它是否正確?

  2. 那麼在res中,這個session對象會自動附加到res然後發送回來,更新客戶端cookie?

回答

2

如果您使用會話。瀏覽器將只在Cookie中包含會話ID。你放在req.session變量中的東西將被保存在服務器端(或者你配置的快速保存的地方)。

在瀏覽器的cookie處設置的會話ID將作爲服務器識別要爲該瀏覽器加載的會話信息的關鍵字。

1

不完全是。該cookie只是一個隨機值,用您在配置時輸入的祕密字符串進行簽名。會話對象的實際內容(在您的示例中,{lastPage:'/ awesome'})存儲在會話存儲中,您也應該在Express配置中的某處配置該會話對象。大多數演示應用程序可以使用默認的MemoryStore逃脫,但生產應用程序始終使用非易失性存儲,如RedisStore,MongoStore等。