Sails.js查找记录并将结果存储到var

时间:2015-06-23 11:59:47

标签: javascript node.js mongodb callback sails.js

我想查询MongoDb,并将返回的记录保存到变量中,这是我在Controller中尝试的内容:

var projects= {};

Project.find({}).exec(function findProject(err, found){

       projects = found;
       console.log(found.length);

       while (found.length)
         console.log('Found Project with name ' + found.pop().name)
});

//返回Undefined

console.log(projects.length);

我做错了吗?

如何将.find()的结果传递给变量项目?

1 个答案:

答案 0 :(得分:2)

你应该停止 pop() - 你的阵列。 您的对象正在传递 by reference ,而不是 by value 。因此,当您从一个中删除项目时,实际上会影响另一个项目。

修改

如果您仍有疑问,可以查看您的查询:

Project.find({}).exec(function findProject(err, found){
     if (err) { // here
          console.log(err);
     } else if (found.length == 0){
          console.log("Nothing was found");
     } else {
          console.log(found);
     }
});

对象没有.length属性,这就是你获得undefined的原因。我假设您收到错误,这就是您的found参数不是数组的原因。