2012-03-30 53 views
0

每當我對應用程序進行更改時,nodemon都會重新啓動整個應用程序,但每次發生這種情況時,我的會話都會被破壞。這讓人很煩,因爲每次我對應用進行更改時都必須登錄。我如何避免這種情況發生?在Node/Express中重新啓動應用程序後,會話重置

我使用基於cookie的會話,因爲我只存儲用戶標識。我的設置是這樣的(在CoffeeScript中):

app.use express.cookieParser() 
app.use express.session 
    secret: 'mysecretkey' 
app.use express.csrf() 

我做這個救我的會話:

req.session.userid = user._id.toHexString() # it's a mongoDB ObjectID 
req.session.save() 

回答

4

默認情況下expresssJS在內存中存儲的會話,所以當你的應用程序是復位內存中會話也是如此。

由於您使用的是mongoDB,我建議您使用mongoDB作爲會話存儲或redis(我沒有嘗試過使用節點)。

你可以看到如何建立與快遞和蒙戈會話支持這樣一個問題:

How to store session values with Node.js and mongodb?

+0

AW廢話。爲什麼不是在指南中說的?我認爲這是基於cookie的。謝謝! – 2012-03-30 04:11:08

+0

我應該使用哪個基於mongodb的會話? https://github.com/kcbanner/connect-mongo或https://github.com/masylum/connect-mongodb?我無法分辨。 – 2012-03-30 04:14:36

+0

我正在使用connect-mongo並沒有問題。如果遇到不喜歡其中一種情況的東西,插入另一個則相當簡單:) – 2012-03-30 04:22:00

相關問題