在Node/Express中重新启动应用程序后,会话重置

问题描述:

每当我对应用程序进行更改时,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() 

默认情况下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