Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
node.js sessionStore为所有会话显示相同的数据_Session_Mongodb_Node.js_Redis - Fatal编程技术网

node.js sessionStore为所有会话显示相同的数据

node.js sessionStore为所有会话显示相同的数据,session,mongodb,node.js,redis,Session,Mongodb,Node.js,Redis,我使用node.js并希望将会话存储在KeyValue存储中。我为此尝试了Redis和MongoDB。在这两种情况下,我都使用变量req.sessionStore,如本例所示: app.get('/user', parseParams, function(req,res) { data = req.sessionStore.userData || {}; sendStringified(req,res,data); }); 但无论我在哪个浏览器中打开我的webapp,如果我访问

我使用node.js并希望将会话存储在KeyValue存储中。我为此尝试了Redis和MongoDB。在这两种情况下,我都使用变量req.sessionStore,如本例所示:

app.get('/user', parseParams, function(req,res) {
    data = req.sessionStore.userData || {};
    sendStringified(req,res,data);
});
但无论我在哪个浏览器中打开我的webapp,如果我访问该站点,它都会访问我从其他地方登录的上一个帐户的数据。因此,同一时间只能登录一个用户。它似乎在所有会话中共享req.sessionData对象。我错过什么了吗

如果我转到mongo客户端中的会话数据库,并执行db.sesions.find(),它将以以下格式显示条目:

{ "_id" : "CKMF8DfBpYNSCNyPIDj9ozVM.ZVo4d0/Oxrxdql44E6QL+U1AgtHWbGXLyX826YO1bDo", 
  "session" :  "{\"lastAccess\":1301358495277,
                 \"cookie\":{\"originalMaxAge\":14400000,\"expires\":\"2011-03-29T04:28:16.004Z\",\"httpOnly\":true,\"path\":\"/\"},
                 \"oauth\":{\"token\":\"the_token\",\"token_secret\":\"the_secret\",\"verifier\":\"the _verifier\",\"access_token\":\"a_token\",\"access_token_secret\":\"a_t_s\"}}" }

我猜您正在使用connect或express,因此:

你不直接与商店互动。您只需与
req.session
交互,connect将使用您配置的存储

我建议您看看rmongo商店提供的示例(redis示例已删除)


非常感谢您的回答!当为会话存储保留req.session时,我如何与会话cookie交互?使用
req.session.cookie
:)您可以获得有关connect文档的更多信息: