[英]How to get object type after retrieving it as document from mongodb?
我正在開發一個具有多種用戶的 nodejs 應用程序,例如“用戶”和“頁面”。 我使用 MongoDB 來保存我的數據,並使用 Passportjs 進行身份驗證。 我需要根據用戶類型提供不同的序列化方法。 示例代碼:
passport.serializeUser((obj, done) => {
if (obj instanceof User) {
console.log("serialising user", obj);
done(null, { id: obj._id, type: 'user' });
} else if (obj instanceof Page) {
console.log("serialising page", obj);
done(null, { id: obj._id, type: 'page' });
}
});
這里的問題是instanceof
不適用於從 MongoDB 檢索的文檔。 它們是使用 User/Page 的構造函數創建的,但現在我無法區分它們,因為它們現在都是 object 類型。 我該如何處理?
從這兩個不同的集合中找到一個唯一的字段,並根據字段和字段值應用此邏輯
我最終做的確實是在返回的對象中使用了一個字段obj.userType ='user'/'page'
,但我沒有將它保存在數據庫中。 相反,我查詢對象,取回文檔 BSON,然后簡單地向其中添加字段。 這樣我就不必一直將它保存給所有用戶,它只是會話所需的檢索用戶對象,直到它終止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.