字符串可以分配给undefined,但不能分配给object属性

时间:2013-09-23 16:13:00

标签: javascript-objects

使用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()并且没有解决它。不确定为什么一个任务有效,另一个没有。

1 个答案:

答案 0 :(得分:1)

解决了它。一个经典的newb nodejs错误。由于它是异步的,所以循环在数据库查询返回结果之前就已经完成了,所以当函数的一部分运行时,没有更多的循环可以将值附加到。