节点表达会话变量不同浏览器的结果相同 - 为什么?

时间:2013-01-18 15:48:12

标签: node.js session-variables

我正在编写聊天程序,不知道如何存储用户名。当我将其存储到session.name时,它在我运行的每个浏览器中都具有相同的值。不使用数据库就可以做到吗?

我就是这样做的:

 var MemoryStore = express.session.MemoryStore,
 sessionStore = new MemoryStore();

然后我只存储价值:

 sessionStore.nickname=nickname

现在我运行浏览器填充昵称并将其发送到服务器。然后打开另一个浏览器,它已经有了这个值 - 我需要为每个浏览器提供不同的值。

1 个答案:

答案 0 :(得分:1)

如果您要修改sessionStoresession,我不确定问题(甚至编辑后的版本)。上面的代码表明您正在修改sessionStore对所有请求都相同。要向单个会话添加值,假设您还使用Express,则需要修改HTTP请求的session变量。在Express 2.x中,这是使用request.session.nickname = nickname;完成的。