Как да скриете някои ключове на вашия обект, когато използвате console.log

Добре, аз съм доста нов в javascript и node, така че този въпрос може да ви прозвучи глупаво, но наистина имам нужда от просветление. Както и да е, имам предмет, който взех от моята мангуста. Да дадем пример

Model.findOne({name:'John'}).exec(function (err, data){
 console.log(data);
});

И така, когато регистрирах в console.log данните резултатът беше

{ _id: 613614asdfa6115, име: 'Джон', __v: 0 }

След това имах глупава идея да добавя друг ключ към този обект, така че, както би направил нормален javascript noob, добавям друг ключ към данните:

data.hello = 'здравей'

НО, когато се опитвам да регистрирам console.log данните, резултатът беше същият. Бях толкова объркан. Затова използвах lodash clone, за да клонирам обекта; за моя изненада имаше много скрити ключове, които първият console.log не получи.

Ето резултата от клонирания обект: http://pastebin.com/zE71Fg2H

Въпросът ми е: Как са скрили част от ключовете от console.log?


person mateeyow    schedule 27.10.2014    source източник
comment
Наистина ли!??! отрицателен вот без причина?! Не заслужавам ли обяснение?   -  person mateeyow    schedule 27.10.2014
comment
Тези скрити ключове са само ключове, означени като неизброими или от прототипа на обекта. Това е всичко.   -  person TenorB    schedule 27.10.2014
comment
Добре благодаря ти! Сега знам колко още не знам за javascript. Но сериозно, въпросът ми наистина ли се нуждае от гласуване против? Беше честен въпрос.   -  person mateeyow    schedule 27.10.2014
comment
Мисля, че вашият въпрос беше отхвърлен, защото гласуващият против него смяташе, че въпросът ви не се нуждае от отговор или просто беше невеж. Съжаляваме, но общността на Stack Overflow понякога може да бъде груба.   -  person TenorB    schedule 27.10.2014
comment
Да, цифри. Това, че имат достатъчна репутация, не означава, че могат просто да гласуват против без предварително обяснение/известие. Искам да кажа, как може OP да знае какво е направил грешно, когато всичко, което той/тя получава, е гласуване против? Ако това е дублиран въпрос, поне получавам връзка към този въпрос. Както и да е, много ви благодаря, че ме просветихте, мили сър. Ако можете да публикувате отговора си, с радост ще го приема.   -  person mateeyow    schedule 27.10.2014


Отговори (1)


Опитайте тази -

Model.findOne({name:'John'}).exec(function (err, data){
 data = data.toObject();
 data.hello = 'hi'
 console.log(data);
});

Надявам се да се получи. За повече информация използвайте тази връзка.

person Kundu    schedule 27.10.2014
comment
Много проницателно, но това всъщност не отговаря на въпроса ми. Но ще гласувам за него. Благодаря ти! - person mateeyow; 27.10.2014
comment
след запазване на документа mongoose връща JSON обекта. ако искате да промените тези свойства, трябва да конвертирате JSON обекта в javascript обект. Можете да направите това, като използвате метода toObject. - person Kundu; 27.10.2014