【问题标题】:How to loop data in RowDataPacket如何在 RowDataPacket 中循环数据
【发布时间】:2019-08-13 00:39:04
【问题描述】:

如何在 RowDataPacket 中循环数据。

这个问题发生是因为在 addonis QueryBuild 中没有返回相同的值

作为清晰的模型

如果我使用 Lucid 模型,一切正常

const emp =  await EMP.all();
for(let i in emp.rows) {
      const data = emp.rows[i]

}

在我使用 querybuilder 之后,我会做这样的事情

const emp =  await Database
                    .table('emp');



for(let i in emp.RowDataPacket) {
      console.log('s')
      const data = emp.RowDataPacket[i]
      const emp =  await emp_sell.query()
                                  .where('emp_id',data.id);
    }

它甚至不是 display 's'

【问题讨论】:

  • 你应该await Database.select('*').from('emp')
  • @guijob 是一样的。数据返回 RowDataPacket 。但我不知道如何在控制器中感染数据
  • 哦,好吧,所以我认为您最终得到的 RowDataPacket[] 女巫是不可迭代的。作为一种解决方法,您可以 JSON.parse(JSON.stringify(emp) 转换为 js 数组,然后对其进行迭代
  • 谢谢,现在我可以使用 emp.forEach(function(data) { console.log(data.id); });
  • 您可以将此添加到答案中吗?我会标记@guijob

标签: javascript adonis.js


【解决方案1】:

在查询await Database.table('emp'); 时,您以RowDataPacket 对象结束,这是一个不可迭代的对象,作为一种解决方法,您可以将其解析为数组:

JSON.parse(JSON.stringify(emp))

延伸阅读here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 2016-11-03
    • 2011-10-17
    • 2022-01-11
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多