NodeJS 连接会话中间件-重新生成与再装填

v64noz0r  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(161)

我想了解Connect的Session中间件,我想知道以下两者的区别:Session.regenerate()与Session.reload()。
具体来说,我检查了文档,没有给出关于会话重新加载实际做什么的解释。同样,我也对Session.save()方法感到困惑。非常感谢任何帮助!

gkl3eglg

gkl3eglg1#

比较两个函数的源代码:

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“销毁以前的会话,给予我一个新的”。

相关问题