【问题标题】:Storing session on running up or in database in Node在 Node 中运行或在数据库中存储会话
【发布时间】:2014-02-10 06:39:17
【问题描述】:

在 stackoverflow 上骚扰人们几天后,我成功地创建了会话并管理了它们。但我想知道.. 建议将它们存放在哪里?在数据库中(我正在使用 mongoDb),还是在应用程序的运行内存中(我将它们存储在 var 中)?

【问题讨论】:

    标签: node.js mongodb session cookies passport.js


    【解决方案1】:

    我强烈建议使用诸如connect-mongo 之类的会话管理模块将您的会话存储在 mongodb 中。这样,如果您的服务器出现故障,会话仍将存储在数据库中并且不会中断,而如果您将它们存储在内存中,会话将丢失。如果您必须在不同的服务器上维护相同的会话,它也是一种更具可扩展性的解决方案。

    如果您使用Express,connect-mongo + Express.session() 是表示应用会话的最简单方法。

    【讨论】:

      【解决方案2】:

      不要将它们作为变量存储在 Node.js 中。在某些时候,您需要使用 cluster 模块扩展您的应用程序,该模块为每个工作进程提供自己的内存。虽然可以在工作人员之间进行通信,但在内存和代码复杂性方面都不是一个好主意。

      如果您已经在使用 mongo,请将会话存储在 mongo 中。将来,您的工作进程都可以将其用作会话的共享内存池。

      【讨论】:

        猜你喜欢
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多