【发布时间】:2016-02-08 12:45:10
【问题描述】:
在Node.js 应用程序中,我有一个名为user 的对象,其中包含以下内容:
{
name:'john',
family:'jackson'
}
我想像这样动态添加一对:
user["city"] = "new york";
但它不起作用!当我这样打印时:
console.log(user);
我看到的内容和上面一样:
{
name:'john',
family:'jackson'
}
但是当我打印这个时:
console.log(user.city);
它打印这个:
new york
但是为什么?我将此结果发送到浏览器,它仍然没有city 键/值!
更新:
在一个普通的 javascript 中,我解释的所有东西都有效。我的问题是当我使用节点 js 并使用 Mongoose 从数据库中获取一些数据后,如下所示:
Users.find({followings:{$elemMatch:{$in:[userID]}}}).exec(function(err, users){
users[0]["city"] = "new york"; // this doesn't work. this adds city to users but doesnt show in console.log(users[0])
});
但是为什么呢? users 是一个常规的 Javascript 对象。为什么我会出现这种行为?
【问题讨论】:
-
这里的
user是什么?它是引用该对象的变量吗? -
是的,就是那个对象
-
它可以在普通的旧 javascript 中运行,至少在我的 FF 控制台中是这样。我对 node.js 的了解还不够,无法进一步帮助您
-
你能告诉我们你的完整代码吗?很难说为什么您的问题会出现在这里。看起来它应该按照我的方式工作。
-
@towerofnix:它的完整代码。我正在测试它。在节点端我可以访问城市值,但是当我将它发送到浏览器时,没有任何城市
标签: javascript json node.js mongoose