0

使用 connect-mongo 来处理会话存储,我在我的 mongo 数据库(使用 mongolab)中得到了很多空会话,可能在每个请求上(或经常)。这是一个例子:

{
"_id": "oThxLcz3PtztDWVxcKZvoADC",
"session": "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{}}",
"expires": {
"$date": "2013-07-10T22:45:52.383Z"
}
}

如您所见,对象中没有定义用户。我在另一个问题中读到,这可能是服务器和客户端之间的时间差异,因此 cookie 会立即过期,但事实并非如此,会话工作正常。知道每次有人登录或注册时如何只有一行吗?我不想在我的数据库上支付额外的存储空间。有关信息,我在 Heroku 和 mongolab 上使用 2 dynos,我的设置是:

app.use(express.session({ secret: 'secretkey',
store: new MongoStore({
      url:'mongodb://db:user@link:27468/dbname'
    })
}));
4

1 回答 1

0

我无法帮助您调试该问题,但我可以建议改用 connect-redis。Heroku 上的 Redistogo nano 实例是免费的,并且应该支持自动过期未使用的会话,这样您就不需要更昂贵的选项。

于 2013-06-27T05:05:22.810 回答