【问题标题】:Returned with object from db call从 db 调用中返回对象
【发布时间】:2019-01-06 10:53:33
【问题描述】:

我执行以下代码;

 var array = await Promise.all([
    database.query("SELECT COUNT(amount) FROM transactions WHERE date >= now() - INTERVAL 1 DAY;"), 
    database.query("SELECT COUNT(amount) FROM transactions WHERE date >= now() - INTERVAL 7 DAY;"), 
    database.query("SELECT COUNT(amount) FROM transactions"), 
  ]);

我希望这样的数组 [1,2,3];

我得到的是;

[ [ RowDataPacket { 'COUNT(amount)': 6 } ],
  [ RowDataPacket { 'COUNT(amount)': 7 } ],
  [ RowDataPacket { 'COUNT(amount)': 7 } ] ]

我错过了什么?

【问题讨论】:

    标签: javascript mysql node.js asynchronous promise


    【解决方案1】:

    根据https://github.com/mysqljs/mysql/issues/1330,这是因为它是一个低级库。

    您仍然可以使用[0]['COUNT(amount)'] 等访问数组。如果您只想要数字,您可能还需要添加更多逻辑。

    【讨论】:

    • 耻辱。这真的让我很烦。
    • @Borda 它不应该,因为它需要 2 秒来编写一个包装 query 并返回单个值的可重用函数。如果您选择的库将提供此功能,它也将是完全相同的功能。这是一个学习机会。
    猜你喜欢
    • 2020-08-14
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2010-12-16
    • 2015-09-12
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多