2011-05-17 87 views
5

我想獲得連接的會話中間件的一個掛,我想知道之間的區別:Session.regenerate()與Session.reload()。連接會話中間件 - 重新生成與重新加載

具體來說,我檢查了文檔,並沒有給出有關會話重新加載實際上做了什麼解釋。同樣,我也對Session.save()方法感到困惑。任何幫助非常感謝!

回答

6

比較爲2層的功能的源代碼:

store.js

Store.prototype.regenerate = function(req, fn){ 
    var self = this; 
    this.destroy(req.sessionID, function(err){ 
    self.generate(req); 
    fn(err); 
    }); 
}; 

session.js

defineMethod(Session.prototype, 'reload', function reload(fn) { 
    var req = this.req 
    , store = this.req.sessionStore; 
    store.get(this.id, function(err, sess){ 
    if (err) return fn(err); 
    if (!sess) return fn(new Error('failed to load session')); 
    store.createSession(req, sess); 
    fn(); 
    }); 
    return this; 
}); 

我讀它作爲「得到t他會話如果存在或創建一個「vs」破壞以前,並給我一個新的「。

+0

這兩個鏈接現在都被打破了。 – TheSoundDefense 2016-05-16 21:22:11

+2

@TheSoundDefense我剛剛從存儲庫的當前位置編輯了代碼片段的答案,這應該有助於任何人絆倒這個答案 – shafeen 2016-08-16 03:49:12