如何访问此对象的属性?
我在node.js和socket.io工作,基本上我听一个套接字disconnect
事件,并调用一个方法。 app.update()
socket.on('disconnect', function (data) { app.update(); }); // This is in another file, and the id is static, but I am more concered with the // messages object that is passed through. update: function() { models.Message.find({_id: "532c8d9ce889ed4c21538630"}, function(err, messages) { console.log(messages) }); }
这是messages
对象的样子
[ { username: 'Marcus', connected: true, _id: 532c8d9ce889ed4c21538630, __v: 0 } ]
我不知道如何访问一个对象的方括号,但基本上我想更新对象,以便我可以设置connected
为false。
我尝试了messages['connected']
。
你有一个对象的数组。 所以你需要访问数组的第一个元素,然后是“连接”属性。 做这个:
messages[0].connected = false;
messages
可能包含多个结果,所以你有一个数组。
实际上, messages
总是一个数组,因为你正在使用find
,它需要多个结果。 如果你使用findOne
它不会是一个数组,而是一个文档。
你应该尝试例如.. messages[0].username
如果你想更新其中的每一个:
messages.forEach(function(message) { message.connected = false; });