Node.js 会话管理,节点&x2B;Express和Mongoose模式对象
我正在使用Node.js+Express+Mongoose,并且有一个Mongoose模式用于存储“会话”数据。同时,我使用“连接mongodb”进行会话管理(本机驱动程序) 直到今天我才意识到我有多余的功能 因此,我尝试将我的模式对象添加到'req.session'。这似乎是可行的,但我在下一个请求中失去了模式对象的Moongose功能Node.js 会话管理,节点&x2B;Express和Mongoose模式对象,node.js,session,express,mongoose,Node.js,Session,Express,Mongoose,我正在使用Node.js+Express+Mongoose,并且有一个Mongoose模式用于存储“会话”数据。同时,我使用“连接mongodb”进行会话管理(本机驱动程序) 直到今天我才意识到我有多余的功能 因此,我尝试将我的模式对象添加到'req.session'。这似乎是可行的,但我在下一个请求中失去了模式对象的Moongose功能 我考虑的一个选项是存储在“Req.session”中,对象的ID,然后使用MangOOSE检索它。 我认为另一个选择是用MangoSession会话管理器代替
我考虑的一个选项是存储在“Req.session”中,对象的ID,然后使用MangOOSE检索它。 我认为另一个选择是用MangoSession会话管理器代替“连接MangOOSE”。 你能帮我做决定,并推荐一种方法吗。更具体地说,如果我使用Mongoose解决方案,它会解决模式对象失去Mongoose功能的问题吗
TIA我的建议是将Mongoose完全排除在会话管理之外,只在
req.session
上的会话中保留普通JavaScript对象。这样,如果您想隔离数据库,您可以像现在一样使用connect mongodb,或者很容易地切换到其他会话存储。如果您需要频繁访问感觉像是会话一部分的Mongoose对象,将这些对象的objectid作为字符串保存在会话中,以便可以根据需要快速轻松地查找它们。我的建议是将Mongoose完全排除在会话管理之外,并且只将普通JavaScript对象保存在会话中的req.session
。这样,如果您想隔离数据库,您可以像现在一样使用connect mongodb,或者很容易地切换到其他会话存储。如果您需要频繁访问感觉像是会话一部分的Mongoose对象,请在会话中将这些对象的ObjectID作为字符串持久化,以便可以根据需要快速轻松地查找它们