2016-11-25 69 views
0

我使用快递与快递会话封装,可以成功地保持像这样一个会话变量,节点会自动创建会话变量吗?

router.get('/test', function(req, res, next){ 
    req.session.test = 'awesome'; 
    res.send('awesome') 
}) 

,当我使用下面的代码,我会得到期望的结果

router.get('/pest', function(req, res, next){ 

    res.send(req.session.test) 
}) 

我没有问题,但我无法理解,Node是否会自动创建与其他变量的会话?例如:

router.get('/test', function(req, res, next){ 
    router.test = 'test'; 
    res.send('test') 
}) 

然后将

router.get('/lest', function(req, res, next){ 
    res.send(router.test) 
}) 

使完全相同的结果。看起来很奇怪,节点会在一段时间后自动保持这样的变量。

回答

1

它不是一个会话变量。

你有一个单一的路由器对象。

对其的修改将持续请求,而不仅仅是来自具有给定会话cookie的浏览器的请求。

+0

所以它需要一个状态机来处理所有独特的IP? –

+0

好的,澄清一下,如果在新泽西的计算机上将A路由器对象更改为计算机B上的相同路由器对象,将会导致计算机B中的同一路由器对象发生更改? –

+0

我不认为你需要一个状态机。你需要一个会话。您不应链接IP地址会话(因为多人可以共享IP地址),请改用会话cookie。是的,路由器对象存在于整个服务器,而不是会话。 – Quentin