Node.js 连接会话中间件-重新生成与重新加载
我试图了解Connect的会话中间件,我想知道:Session.regenate()和Session.reload()之间的区别Node.js 连接会话中间件-重新生成与重新加载,node.js,connect,express,Node.js,Connect,Express,我试图了解Connect的会话中间件,我想知道:Session.regenate()和Session.reload()之间的区别 具体地说,我检查了文档,没有解释会话重载的实际作用。同样,我也对Session.save()方法感到困惑。非常感谢您的帮助 比较两个函数的源代码: store.js Store.prototype.regenerate = function(req, fn){ var self = this; this.destroy(req.sessionID, funct
具体地说,我检查了文档,没有解释会话重载的实际作用。同样,我也对Session.save()方法感到困惑。非常感谢您的帮助 比较两个函数的源代码: store.js
Store.prototype.regenerate = function(req, fn){
var self = this;
this.destroy(req.sessionID, function(err){
self.generate(req);
fn(err);
});
};
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;
});
及
session.js
Store.prototype.regenerate = function(req, fn){
var self = this;
this.destroy(req.sessionID, function(err){
self.generate(req);
fn(err);
});
};
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;
});
我将其理解为“如果会话存在,请获取会话或创建会话”,而不是“销毁以前的会话并给我一个新会话”。这两个链接现在都已断开。@SoundDefense我刚刚用存储库当前位置的代码片段编辑了答案,这应该可以帮助任何偶然发现此答案的人