2016-03-24 154 views
1

我有一个返回结果的代码。通常,当我收到该结果时,我将它发送给客户端,并沿着它的方式转换为纯JSON对象。迭代sequelize查询结果集(Hapijs)

但现在我需要对该结果集进行一些操作,然后在数据库中进行另一次查找。

我不明白的是结果集的结构。我如何正确地迭代它。我可以使用for循环提取手动值,但我有一种感觉不是这样做的。

这是返回结果的代码:

models.Results.findAll({ 
      where: {ProjectId: projectId} 
     }) 
     .then(function (resultset) {    
      //How do I properly iterate over the resultset 
      for(p in resultset){ 

       var a = p; 
       var something; 

      } 


      reply(resultset).code(200); 
     }, function (rejectedPromiseError) { 
      reply(rejectedPromiseError).code(401); 
     }); 

图像显示结果在调试模式。它有4个对象:enter image description here

+0

取而代之的是'为in'循环,尝试'resultset.forEach(函数(结果){//结果应该是有你要找的(dataValues,hasPrimaryKeys等)属性的对象});'。 – utamanna

回答

5

当您使用model.findAll时,返回的resultset是一个数组model Instance objects。如果你只想得到有趣的东西(表中的实际值),你可以遍历resultset并在每个项目上调用get function,传递一个值为plain: true的选项对象。

resultset.forEach((resultSetItem) => { 
    console.log(resultSetItem.get({ 
     plain: true 
    })); 
});