給定一個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