【问题标题】:NodeJS (Express.js) : How to make the Session globalNodeJS (Express.js):如何使 Session 全球化
【发布时间】:2014-02-05 11:50:22
【问题描述】:

我知道全局变量在 javascript 和整体编程中是一种不好的做法,但我想让我的用户会话在我的 express.js 应用程序中可用,避免将会话参数从我的控制器传递到我的楷模。

我怎样才能最好地做到这一点?

谢谢!

【问题讨论】:

  • 你真的要“把会话参数传遍”吗?你不能从req.session 的任何地方访问会话吗?
  • 这意味着绕过req 不是吗..

标签: node.js session express global


【解决方案1】:

我最终这样解决了这个问题:

var appendLocalsToUseInViews = function(req, res, next)
{            
    //append request and session to use directly in views and avoid passing around needless stuff
    res.locals.session = req.session;
    next(null, req, res);
}

然后将其添加到中间件中:

app.use(appendLocalsToUseInViews);

【讨论】:

    【解决方案2】:

    如果你真的想这样做,请将请求或会话添加到节点的global-object 虽然我也不推荐这样做...

    【讨论】:

    • 显然这是行不通的,或者是对做一些更复杂的事情的总体简化。您将有许多并行活动的会话。提问者想在函数调用中访问正确的会话。这可能只有在 node.js 知道它所代表的会话并且可以通过 API 公开它时才有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 2010-11-18
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多