【问题标题】:Why doesn't node.js Express framework use a callback when setting a session variable?为什么 node.js Express 框架在设置会话变量时不使用回调?
【发布时间】:2012-07-29 12:38:26
【问题描述】:

我注意到,为了将值存储到会话中,您只需调用 req.session.key = 值 无需指定回调。我使用 connect-mysql 模块将 mysql 设置为我的会话存储适配器。所以我想知道每次我将一个值保存到正在数据库中更新的会话时,不应该有一个与此相关的回调吗?然而,无论我看到哪里,人们都在愉快地同步使用它。有人可以解释为什么会这样吗?谢谢。

【问题讨论】:

    标签: node.js session callback express


    【解决方案1】:

    session middleware 每次请求实际上只与数据存储交互两次,而不是每次更改都立即交互:

    1. 使用Store#get() 在请求开始时批量检索Session。 (source)
    2. 使用Store#set()(通过Session#save())在请求结束时批量保存Session。 (source)

    在这些步骤之间,可以同步更改session。它们应该在调用res.end() 或类似(res.render()、res.json() 等)之前完成。

    【讨论】:

    • 谢谢你说得通。
    猜你喜欢
    • 2015-03-03
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多