我有我推到我的會話的用戶對象登錄。用戶對象是一個sequelize用戶對象實例,它有許多有用的方法。nodejs會話只存儲json?
當我讀的對象從會議回來,所有我現在已經是我的對象的JSON表示。所有有用的方法都消失了。
節點問:是否有可能把完整的對象到會話中,不只是JSON交涉?
續集問題:擁有對象的json表示形式,是否可以構造完整的續集對象而無需重新查詢?
我有我推到我的會話的用戶對象登錄。用戶對象是一個sequelize用戶對象實例,它有許多有用的方法。nodejs會話只存儲json?
當我讀的對象從會議回來,所有我現在已經是我的對象的JSON表示。所有有用的方法都消失了。
節點問:是否有可能把完整的對象到會話中,不只是JSON交涉?
續集問題:擁有對象的json表示形式,是否可以構造完整的續集對象而無需重新查詢?
可以單獨的對象功能和數據,例如:
user.prototype.methods = userMethods;
user.prototype.data = req.session.userData
function userMethods(){
}
,我們在談論什麼樣的會議?
對於cookie的會話:序列化一切都會使客戶端的頭龐大(慢/大請求),並願意負擔您的服務器更與每個請求。
對於數據庫支持的會話:您存儲在cookie小會話ID,那麼你必須查詢數據庫,在任何情況下,會話對象。
使用查詢,以獲得完整的用戶對象,而不是通過保存在cookie中的用戶ID,而不是會話ID。
最後選項:
sequelize
實例化一個用戶對象。我還沒有使用的ORM,但我用其他的ORM的東西(貓鼬),您可以從它的數據,這將給你訪問所有你又錯過了有用的方法實例化一個對象回來。編輯:從文檔,我在想,你可以得到保存在您的會話(session.user
)的JSON,然後恢復用戶實例是這樣的:
var restoredUserInstance = MyUserModel.build(session.user);
由於用戶模型的JSON可能會包括你的主鍵(電子郵件或用戶名或東西),然後你可以使用restoredUserInstance.save()
和所有其他方法如預期(保存會更新等),讓我知道,如果不工作,我們可以進一步挖掘進入文檔/代碼。
我當時一看,發現如何從實例化JSON實例下面的解釋,而不調用DB find()
:https://github.com/sdepold/sequelize/issues/191
最後的選擇是我所需要的。生病了看着它 – mkoryak
你還記得這個@mkoryak的結果?什麼是最好的方法? – Scott