【发布时间】:2014-02-10 06:39:17
【问题描述】:
在 stackoverflow 上骚扰人们几天后,我成功地创建了会话并管理了它们。但我想知道.. 建议将它们存放在哪里?在数据库中(我正在使用 mongoDb),还是在应用程序的运行内存中(我将它们存储在 var 中)?
【问题讨论】:
标签: node.js mongodb session cookies passport.js
在 stackoverflow 上骚扰人们几天后,我成功地创建了会话并管理了它们。但我想知道.. 建议将它们存放在哪里?在数据库中(我正在使用 mongoDb),还是在应用程序的运行内存中(我将它们存储在 var 中)?
【问题讨论】:
标签: node.js mongodb session cookies passport.js
我强烈建议使用诸如connect-mongo 之类的会话管理模块将您的会话存储在 mongodb 中。这样,如果您的服务器出现故障,会话仍将存储在数据库中并且不会中断,而如果您将它们存储在内存中,会话将丢失。如果您必须在不同的服务器上维护相同的会话,它也是一种更具可扩展性的解决方案。
如果您使用Express,connect-mongo + Express.session() 是表示应用会话的最简单方法。
【讨论】:
不要将它们作为变量存储在 Node.js 中。在某些时候,您需要使用 cluster 模块扩展您的应用程序,该模块为每个工作进程提供自己的内存。虽然可以在工作人员之间进行通信,但在内存和代码复杂性方面都不是一个好主意。
如果您已经在使用 mongo,请将会话存储在 mongo 中。将来,您的工作进程都可以将其用作会话的共享内存池。
【讨论】: