1

使用 NodeJS 和 MongoDB。

我有一个 mongo 查询,我正在尝试将我的查询的一些属性分配给一个现有的对象,这是先前查询的结果。

我收到“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 时,没有错误。我试过改变 user.property1 toString() 并没有解决它。不知道为什么一项作业有效而另一项无效。

4

1 回答 1

1

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

于 2013-09-24T21:57:33.143 回答