全裸屬性我有類似下面的代碼:用的toJSON/toObject
User.findOne(id)
.exec((err, user) => {
Pets.find(_.pluck(user.pets, 'id'))
.populate("toys")
.exec((err, petsWithToys) => {
user.pets = petsWithToys;
return res.ok({ user: user });
});
});
當我看在客戶端的響應我看不到裏面的寵物玩具陣列。
我想也許這是因爲在我的User
模型中覆蓋toJSON
函數,但即使刪除它,我也會得到相同的行爲。
此外,我發現,如果我將值分配給未在模型中定義的新屬性,我確實在客戶端看到了這些值。即如果我做
user.petsNew = petsWithToys;
我會看到完全填充的屬性。
我見過的toObject
哪裏是說,它消除了實例方法(here),但我不知道爲什麼收集被認爲是一種方法,不知道如何更改值後,仍然被刪除的文檔。
任何意見/解釋/解決方法?
P.S.試圖單步執行代碼,但不能踏進toObject
...
當您設置的'user.pets = petsWithToys斷點;'線和檢查'用戶',它有'玩具'嗎? –
您使用的是什麼版本的Lodash?因爲v.4'_.pluck'正在被'_.map'所取代。 請參閱[此鏈接](http://stackoverflow.com/questions/35136306/what-happened-to-lodash-pluck) –
@ T.J.Crowder - 是的,有 - 它只在toJSON/toObject調用中被刪除。看來下面答案中的建議可行(需要測試)。 –