Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb express session如何管理其会话存储?_Mongodb_Session_Cookies_Express - Fatal编程技术网

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文档中查看更多内容,但欢迎在此提供简短回答