Node.js Sails.js-当我是exec()时,数据对象变为空白

Node.js Sails.js-当我是exec()时,数据对象变为空白,node.js,model-view-controller,sails.js,Node.js,Model View Controller,Sails.js,我的应用程序的控制器操作有一个while循环(while(item=stream.read()) 其中,如果我执行以下操作: while (item = stream.read()) { console.log(item); } while (item = stream.read()) { Buzzfeed.find({'title': {'contains': item.title}}).exec(function(err, item) {

我的应用程序的控制器操作有一个while循环(while(item=stream.read())

其中,如果我执行以下操作:

while (item = stream.read()) {        
    console.log(item);
     }
while (item = stream.read()) { 
    Buzzfeed.find({'title': {'contains': item.title}}).exec(function(err, item) {
        console.log(item); 
    });
}
我可以看到item对象,但如果执行以下操作:

while (item = stream.read()) {        
    console.log(item);
     }
while (item = stream.read()) { 
    Buzzfeed.find({'title': {'contains': item.title}}).exec(function(err, item) {
        console.log(item); 
    });
}
数据显示为一系列空数组

以下是指向我的整个控制器的链接,仅供参考:

好奇我哪里出错了?

试试看

while (item = stream.read()) { 
  Buzzfeed
   .find()
   .where({'title': {'contains': item.title}})
   .exec(function(err, item) {
      console.log(item); 
    });
}

吃水线ORM
中,
find
用于查找单个标准。它应该使用
where
,因为它需要一个查询“where”逻辑。

即使代码是正确的,包含一些解释也是很好的。很抱歉,谢谢你的建议。其实因为我的英语不好,我觉得很难解释,哪怕是一件简单的事情,哈哈。以后不会再重复了。OP的语法很好;
find
的第一个参数是where子句。链接
。其中()
是可选的替代语法。所以,您的代码在功能上与他们发布的代码相同。@sgress454我也不知道它是否有bug。因为如果在
find
中用
where
链接某个字段,我也会遇到这样的问题,我不太明白,但它是以这种方式工作的,所以我总是使用这种方式。您是否确认您的数据库中有
Buzzfeed
记录,其标题包含
项。返回的标题
值?如果不是,则这些空数组可能是预期的输出;您将执行多个不返回结果的查询。