Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 会话管理,节点&x2B;Express和Mongoose模式对象_Node.js_Session_Express_Mongoose - Fatal编程技术网

Node.js 会话管理,节点&x2B;Express和Mongoose模式对象

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会话管理器代替

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

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

因此,我尝试将我的模式对象添加到'req.session'。这似乎是可行的,但我在下一个请求中失去了模式对象的Moongose功能

我考虑的一个选项是存储在“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作为字符串持久化,以便可以根据需要快速轻松地查找它们