给定一个sessionId,我需要保留快速会话对象。之后,我希望能够编辑此会话对象,并让它自动更新会话存储中的会话。重新创建Express会话?
Session = require('express').session.Session;
_testSession: (sStore, sId) ->
console.log 'called _testSession with session id: ' + sId
sStore.get sId, (error, session) ->
expressSession = new Session
sessionId: sId
sessionStore: sStore
, session
expressSession.foo = 17
console.log 'set expressSession.foo to: ' + expressSession.foo
setTimeout (()->
sStore.get sId, (error, session) ->
console.log 'foo = ' + session.foo
), 1000
但是,运行这个测试时,我得到以下的输出:
called _testSession with session id: YaFLcq3eSvoNuwnLS1T1ntrC.3UJMuQ5So6lYRWLDgIRx4Vk/Ab1qH65zV9IwMqoMcR8
set expressSession.foo to: 17
foo = undefined
有没有人有任何想法是怎么回事... :(
=== = EDIT ====
我试图调用save()为好,以便代码读取:
console.log 'set expressSession.foo to: ' + expressSession.foo
expressSession.save (error) ->
console.log 'error: ' + error
setTimeout (()->
sStore.get sId, (error, session) ->
console.log 'foo = ' + session.foo
), 1000
,并得到了相同的输出:(
==== ====编辑
没关系,保存()的作品。 sessionId应该是sessionID .../facepalm。
什么你的意思是“自动更新”?你确定你不需要调用Session对象的save方法吗?http://www.senchalabs.org/connect/session.html – robkuz
我更新了我的帖子。可悲的是,调用save()没有帮助:( – user1161657
Nvm,sessionId应该是sessionID。 – user1161657