使用NodeJS和MongoDB。
我有一个mongo查询,我试图将我的查询的一些属性分配给现有的Object,这是先前查询的结果。
我收到“TypeError:无法设置未定义的属性'property1'”
enter code here
for(var i=0; i<data.data.length; i++){
if(data.data[i].a){
var c = data.data[i].a.toString();
SOMETHING.METHOD(c, function(user){
console.log(JSON.stringify(user, null, 2));
data.data[i].property1 = user.property1;
data.data[i].property2 = user.property2;
data.data[i].property3 = user.property3;
});
}else{
data.data[i].property1 = "not available";
data.data[i].property2 = "not available";
data.data[i].property3 = "not available";
}
但是,奇怪的是,当我为property1分配“not available”时,没有错误。我已经尝试将user.property1更改为String()并且没有解决它。不确定为什么一个任务有效,另一个没有。
答案 0 :(得分:1)
解决了它。一个经典的newb nodejs错误。由于它是异步的,所以循环在数据库查询返回结果之前就已经完成了,所以当函数的一部分运行时,没有更多的循环可以将值附加到。