【问题标题】:Global server session in express node.js appexpress node.js 应用程序中的全局服务器会话
【发布时间】:2014-11-06 18:54:11
【问题描述】:

考虑到我只能在请求的函数中获取当前会话,我应该如何授予对 node.js 应用程序模块的访问权限?
这是一个相当复杂但模块化的应用程序,传递会话似乎有点困难,我必须重新实现很多东西。
理想情况下,我会将它附加到使用 module.exports 导出的对象上,并在其他模块中需要它。但我担心在并发请求时它会被覆盖,我可能会遇到冲突。

【问题讨论】:

  • 它如何被并发请求覆盖?你有例子吗?

标签: javascript node.js session express


【解决方案1】:

您尝试过 res.locals 吗? 在官方文档中,它说“响应局部变量的范围仅限于请求,因此仅可用于在该请求/响应周期期间呈现的视图(如果有)。此对象对于公开请求级信息很有用,例如请求路径名、认证用户、用户设置等。"

当您的中间件/路由回调被调用时,您可以定义res.locals.myProp = "some value" 并使用locals.myProp 从视图中访问它。

【讨论】:

  • 我不需要视图中的数据,而是基于当前路由所需的其他节点模块中的数据。
  • 对不起,我的错,我读你的帖子太快了。您可以在每个请求上定义app.locals.myProp...但您最终可能会遇到您害怕的相同问题。我不知道,老实说,我从未尝试过。也许有人会提出更好的解决方案
【解决方案2】:

我通过使用 express-domain-middleware 解决了这个问题,它将来自 express 的传入请求和响应绑定到新的 domain

【讨论】:

    猜你喜欢
    • 2019-03-15
    • 2016-01-07
    • 2015-06-26
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2011-02-17
    • 2011-02-12
    相关资源
    最近更新 更多