Насколько я понимаю, в JavaScript нет .toObect()
, но он используется в мангусте для преобразования документов мангуста в объект, чтобы вы могли использовать встроенные в JavaScript функции.
Я не понимаю, когда его использовать. иногда, когда я получаю массив документов, я могу использовать forEach для возвращаемого массива, а в других случаях я трачу 20 минут на выяснение того, почему forEach не работает. затем я бы добавил .toObject
к возвращаемому массиву, и forEach заработал бы. что-то такое. Я не уверен в своей памяти, было ли это для каждого или что-то еще.
В любом случае, это последняя странная проблема. Я работаю в EJS, и мне нужно было сделать <% console.log("typeof", user.toObject().hasOwnProperty("facebook")) %>
для работы вместо <% console.log("typeof", user.hasOwnProperty("facebook")) %>
. Тот, что с .toObject()
консолями: typeof true
тот, что без консолей typeof false
. Мне это кажется странным. Является ли пользователь документом мангуста? Как я могу использовать .toObject в ejs? О, подожди минутку. Я просто думаю, потому что он находится в «<%%>
», он подключается к коду на стороне сервера, и, возможно, мне требуется мангуст в моем server.js
Почему я должен использовать toObject для получения значения true
?
в любом случае я не думал, что мне нужно использовать .toObject()
Вот что у меня есть в моем файле .js: res.render("editProfile", {aboutUser : returnedUser, user : req.user});
Я думаю, что req.user
из паспорта, а не мангуста.
объект пользователя
{ _id: 581a2chan3changed727, defaultImage: 'https://scontefrfrxxffbcdn.net/v/t1.0-1/s148x148/29731_575634691740_1085883_n.jpg?oh=797bc81addf3611309changedoe=588AC839', urlname: 'Jacchanged', momented: 'Nov 2, 2016', username: 'Jack Schuldenfrei', __v: 0, usefulness: [], createdOn: Wed Nov 02 2016 14:15:47 GMT-0400 (Eastern Daylight Time), shortId: 'rkn8powgl', pointsRecord: [], repPoints: 0, facebook: { posts: '{"email":"jschuldenfreiGTGTGTgchanged,"name":"Jack Schuchange","gender":"male","picture":{"data":{"height":148,"is_silhouette":false,"url":"https:\\/\\frfr.net\\/v\\/t1.0-1\\/s148x148\\/29731_575634691740_1fr5883_n.jpg?oh=797bc81addf36113e0933a67eef32ab9&oe=588AC839","width":93}},"id":"10100584555845400"}', gender: 'male', email: 'jschuldenfredu', name: 'Jack changes', token: 'EAAPs693O1UMBAHwTcyZAPtRiXrwvxrBWhGCJZCQlAIfHRZAiCLY3tYDVoviB4yDrK68WrsUnuxlcHfUJE984aAvWOnFZASqbUjYZAhHnsL0mFCZCNRQwsn3oJn1acu1qnSPFko6I3ShZAtPIMumrVlpVxR0ZD', id: '1010058386584400' }, reviews: [] } { _id: 581a2d53380e4c70ac728, userId: 581a2d380e4c7037aac727, username: 'Jack changed', urlname: 'Jachanged', __v: 0, question1: { name: 'This is for question1' } }
Я получаю этот пользовательский объект, выполняя <%=user%>
в файле ejs.
toObject()
. И я думаю, может быть, нам нужно меньше деталей - person Tibrogargan   schedule 03.11.2016req.user
предоставляется по паспорту. Я считаю, что это нормально, и передаю этоejs
. поэтому я удивлен, что мне нужно использоватьtoObject
. Этот парень упоминает о проблеме сtoObject
. Мне интересно, может ли это вызывать у меня проблемы. stackoverflow.com/a/39019417/1893672 - person jack blank   schedule 03.11.2016user.facebook
, но я не мог использовать hasOwnProperty безtoObject()
, и если бы я просто выполнил проверку условия с помощьюuser.facebook
, это дало бы мнеfalse
, неправильный ответ. - person jack blank   schedule 03.11.2016