2012-08-31 18 views
1

我正在使用Node.js + Express + Mongoose,並有一個Mongoose模式用於存儲「會話」數據。同時,我正在使用'connect-mongodb'進行會話管理(本地驅動程序)。會話管理,Node + Express和Mongoose模式對象

直到今天,我意識到我有多餘的功能。

所以,我試圖將我的Schema對象添加到'req.session'。它似乎可行,但我在下一次請求中放棄了Schema對象的Moongose功能。

我認爲的一個選擇是存儲'req.session'對象的id,然後使用Mongoose來檢索它。

我考慮的另一個選擇是用Mongoose會話管理器替換'connect-mongoose'。

你能幫我做出決定,並推薦一種方法。更具體地說,如果我使用Mongoose解決方案,它是否可以解決與我的Schema對象失去Mongoose功能的問題?

TIA

回答

1

我的建議是完全保持貓鼬您的會話管理,只有在req.session堅持會話普通的JavaScript對象。這樣,您可以像現在一樣使用connect-mongodb,或者如果想要隔離數據庫,可以非常輕鬆地切換到其他會話存儲,如connect-redis。如果您需要經常訪問感覺像會話一部分的Mongoose對象,請將這些對象的objectId作爲字符串保存在會話中,以便可以根據需要快速方便地查找它們。