为什么node.js Express框架在设置会话variables时不使用callback?
我已经注意到,为了在会话中存储一个值,您只需调用req.session.key = value,而无需指定callback。 我使用connect-mysql模块将mysql设置为会话存储适配器。 所以我想知道每次我保存一个值的会话,它正在更新的分贝,不应该有一个callback与此相关? 然而,在我看来,人们正在愉快地同步使用它。 有人可以解释为什么这种情况? 谢谢。
session
中间件实际上每个请求只与数据存储实际交互两次,而不是立即与每个更改进行交互:
- 使用
Store#get()
在请求开始时批量检索Session
。 ( 来源 ) - 使用
Store#set()
(通过Session#save()
)在请求结束时将会话持久化。 ( 来源 )
在这些步骤之间,可以同步完成对session
更改。 它们应该在res.end()
或类似的( res.render()
, res.json()
等)被调用之前完成。