如何在 cookie-session 中间件中检测到 'req.session' 更改?

How is 'req.session' change detected in cookie-session middleware?

来自Readme.md file,它说,

如果 req.session 的内容被更改,中间件将自动添加 Set-Cookie header 到响应。

检测req.session变化的实现在哪里?你能指出代码或解释一下如何检测到这个变化吗?

Object.defineProperty https://github.com/expressjs/cookie-session/blob/3dba6fb1287b19ee2f0cb3edb8a0f2afcf65bb7f/index.js#L74:

    Object.defineProperty(req, 'session', {
      configurable: true,
      enumerable: true,
      get: getSession,
      set: setSession <---- this one
    })

setSession在赋值时调用,setSessionset the cookie