我得到的結果(對象)從貓鼬查詢回來,要替換/刪除一些按鍵,之前我字符串化的對象,並將其發送給客戶端。如何檢查/迭代節點中的對象?
當我CONSOLE.LOG對象,一切都很好(所有鍵都列出來,僅此而已)。當我在對象上做一個for..in時,隱藏的字段會出現在任何地方(以及感興趣的鍵,請不要)。他們有道理 - 他們屬於貓鼬 - 但我不想要他們。在對象 - 隱藏字段彈出窗口中使用Object.keys或Object.getOwnPropertyNames時,同樣的事情發生,沒有用處。
所以我想與util.inspect檢查元素(OBJ,真實,空,真)並記錄結果到控制檯。控制檯上的結果是一樣的,就好像我將console.log直接對象沒有檢查。
現在,兩個問題;
- 如何正確檢查一個對象,以便實際獲取有關該對象的內部/隱藏信息?
- 我如何可以遍歷對象,只能獲得場? (是的,我做的for..in循環中的hasOwnProperty檢查)
//編輯
OK,我知道了。經過一番調查後,我意識到,貓鼬對象代理的性質,以及具有一個功能的toJSON,這解釋了爲什麼console.logs是在預期的輸出結構。解決方案是使用Mongoose自己的toObject方法;
mongooseObj.toObject({ getters: true, virtuals: false })
這樣一來,我可以遍歷Object.getOwnPropertyNames和替換/刪除鍵我不想讓客戶知道!
你能改寫一下你的問題嗎?我很難理解你在問什麼。 '隱藏領域'是什麼意思?原型鏈上的屬性是否更高?標記爲不可枚舉的屬性?或以_underscore開頭的屬性? – 2012-03-09 00:03:16