1

我正在使用 Node.js + Express + Mongoose,并且有一个用于存储“会话”数据的 Mongoose 模式。同时,我使用“connect-mongodb”进行会话管理(本机驱动程序)。

直到今天我才意识到我有多余的功能。

所以,我尝试将我的 Schema 对象添加到“req.session”。它似乎有效,但我在下一个请求中失去了我的 Schema 对象的 Moongose 功能。

我考虑的一种选择是将对象的 id 存储在“req.session”中,然后使用 Mongoose 检索它。

我考虑的另一个选择是用 Mongoose 会话管理器替换“connect-mongoose”。

你能帮我做决定吗,并推荐一种方法。更具体地说,如果我使用 Mongoose 解决方案,它会解决我的 Schema 对象失去 Mongoose 功能的问题吗?

TIA

4

1 回答 1

1

我的建议是让 Mongoose 完全脱离你的会话管理,并且只在req.session. 这样,您可以像现在一样使用 connect-mongodb,或者如果您想隔离数据库,可以非常轻松地切换到其他会话存储,例如connect-redis 。如果您需要频繁访问感觉像是会话一部分的 Mongoose 对象,请将这些对象的 objectIds 保存为会话中的字符串,以便可以根据需要快速轻松地查找它们。

于 2012-09-01T03:08:45.840 回答