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

时间:2012-03-30 03:55:30

标签: node.js express

每当我对我的应用程序进行更改时,nodemon都会重新启动整个应用程序,但每次发生这种情况时,我的会话都会被销毁。这很烦人,因为每次我对我的应用程序进行更改时都必须登录。我该如何避免这种情况发生?

我正在使用基于cookie的会话,因为我只存储用户ID。我的设置看起来像这样(在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()

1 个答案:

答案 0 :(得分:5)

默认情况下,expresssJS使用内存存储进行会话,因此当您的应用程序重置时,内存会话也是如此。

由于您使用的是mongoDB,我建议您使用mongoDB进行会话存储,或者使用redis(我没有尝试使用节点)。

您可以看到有关如何使用express和mongo设置会话支持的问题:

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