我试图了解Connect的Session中间件,我想知道它们之间的区别:Session.regenerate()vs Session.reload()。
具体来说,我检查了文档,并没有解释会话重新加载实际上做了什么。同样,我也对Session.save()方法感到困惑。任何帮助非常感谢!
答案 0 :(得分:7)
比较两个函数的源代码:
<强> 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;
});
我把它读成“如果它存在或创建一个会话”vs“销毁前一个并给我一个新的”。