使用 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'
})
}));