Mongodb express session如何管理其会话存储?
假设我的Mongodb express session如何管理其会话存储?,mongodb,session,cookies,express,Mongodb,Session,Cookies,Express,假设我的node.js+express+socket.io服务器和express session中间件使用mongoDB作为存储('connect-mongo'),会话的maxAge设置为null(即只要用户的浏览器打开,cookie就会持续),现在这台服务器完全关闭了 时代在流逝,在新的世纪里,地球被僵尸、狼人和外星入侵者撕裂,一群疯狂勇敢的科学家发现了我服务器的完整残骸并启动了它们 因此,此时许多(如果不是每个)客户端的浏览器都关闭了,cookie也被清理了。若其中一个客户端将连接到我的服务
node.js
+express
+socket.io
服务器和express session
中间件使用mongoDB
作为存储('connect-mongo'
),会话的maxAge
设置为null
(即只要用户的浏览器打开,cookie就会持续),现在这台服务器完全关闭了
时代在流逝,在新的世纪里,地球
被僵尸
、狼人
和外星入侵者
撕裂,一群疯狂勇敢的科学家发现了我服务器的完整残骸并启动了它们
因此,此时许多(如果不是每个)客户端的浏览器都关闭了,cookie也被清理了。若其中一个客户端将连接到我的服务器,服务器将发现他(客户端)并没有提供任何有效的cookie,并将为他创建一个新的cookie
现在-我感兴趣的部分-存储在
connectmongo
存储中的那些旧会话发生了什么。显然,服务器无法在他停机时清理它们,现在它们将作为死物挂在DB存储中?或者它背后有一些令人兴奋的魔力,在服务器重新启动后,会不知何故地“知道”那些用户很久以前就结束了会话,而服务器却关闭了,并会相应地清理一切?express session
不会对其存储强制执行任何清理行为(至少我没有看到任何证据)。然而,商店肯定会清理过时的会话。例如,从:
默认情况下,connectmongo
使用MongoDB的TTL收集功能(2.2+)让mongod自动删除过期会话。但是你可以改变这种行为
好的,那么我感兴趣的是它是如何工作的,在没有maxage的情况下重启Cookie后它是否会成功清理,以及在这种情况下的行为。稍后将在connect mongo文档中查看更多内容,但欢迎在此提供简短回答