【发布时间】:2020-07-03 05:36:22
【问题描述】:
理解这一点对于配置目的很重要。
如果它确实实现了 touch 方法,我可以安全地将 resave 设置为 false。
session({
// blah blah
resave: false
});
我将如何着手调查此问题,因为在文档页面上没有现成的信息。
我确实找到了这个,但我认为这是一个不同的 touch()
【问题讨论】:
理解这一点对于配置目的很重要。
如果它确实实现了 touch 方法,我可以安全地将 resave 设置为 false。
session({
// blah blah
resave: false
});
我将如何着手调查此问题,因为在文档页面上没有现成的信息。
我确实找到了这个,但我认为这是一个不同的 touch()
【问题讨论】:
是的,express-session 的 redis 连接器实现了touch。如果你查看relevant portion of the source 中的connect-redis module(这就是redis 支持express-session 的方式),你会发现它确实实现了触摸方法,除非传递了一个选项来禁用它。
以下是相关来源:
touch(sid, sess, cb = noop) {
if (this.disableTouch) return cb()
let key = this.prefix + sid
this.client.expire(key, this._getTTL(sess), (err, ret) => {
if (err) return cb(err)
if (ret !== 1) return cb(null, 'EXPIRED')
cb(null, 'OK')
})
}
【讨论】:
lib 目录中,或者您怎么知道要在那里查看。其他项目要大得多。