2013-08-02 55 views
3

我有一個帶有幾個」ref「屬性的貓鼬模式。最近(我相信升級到最新版本的貓鼬後),我的保存已開始失敗,除非填充()ref字段。它失敗的錯誤是Mongoose文檔保存失敗,「TypeError:無法讀取未定義的屬性'選項'

TypeError: Cannot read property 'options' of undefined 

有沒有其他人看到過這個?我想我可以通過總是填充來解決它,但我想明白爲什麼這是必要的。

回答

14

這是由我的自定義toObject和toJSON轉換造成的,這是當我通過API返回JSON時刪除不想序列化的屬性。

我沒有意識到它也影響了Mongoose的序列化到MongoDB。

編輯:它也可能是由於嘗試保存具有未填充的'ref'屬性的文檔!

+3

+1提到ref屬性;對我來說,這是因爲試圖保存一個具有水合的ref屬性的文檔(一個對象),而不僅僅是'_id'。 –

+1

'ref'屬性問題的好結果。那是我的問題。 – Don

+0

同樣在這裏,我的ref屬性是一個空的對象。 –

-1

我有類似的問題,它有助於發送以前缺少的HTTP標頭字段Content-Type: application/json。 添加這個幫助。

+0

不知道它是否與您的解決方案相關,但我通過在保存到mongo之前製作JS對象的副本來解決該問題。看起來Nodejs增加了一些屬性,如__ proto __或者導致保存失敗的東西。但是,當您放置正確的Content-Type時,可能會以不同的方式處理對象(例如,不會添加__ proto __)。雖然沒有嘗試過。 –

相關問題