Nodejs node-mysql 查询结果数据类型

Nodejs node-mysql query result data type

我无法弄清楚如何从 mysql 回调函数中的查询中获取数据。例如我有如下查询:

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, result) {
    if (err) {
        throw err;
    } 
    else {
        console.log(Type.of(result));
        console.log("card count is as: " + result.count);
        console.log("Card count is: " + result["COUNT(*)"]);
        console.log(result);
    }
});

打印出来:

[Function: Array]
card count is as: undefined
Card count is: undefined
[ { 'COUNT(*)': 3 } ]

什么是“[Function: Array]”数据类型以及如何从中选取变量?函数数组?为什么 "result.count" 未定义,即使我在查询中使用了 AS 东西。

另外,以下查询与下面的查询有何不同?

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, rows, fields) {
});

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, result) {
});

我什么时候用另一个,什么时候用另一个?

将您的查询更改为

SELECT COUNT(*) AS count from card 

列别名应该在选择列之后定义,而不是在from之后。

带有 function (err, rows, fields) 的回调更适合于选择您正在使用的数据,然后行将由数组的数组填充。因此,在您的情况下,rows[0]['COUNT(*)'] 就是您的计数。

对于多行选择,您可以遍历结果。

作为旁注,我认为你的意思是 SELECT COUNT(*) AS count from card 然后可以更简单地访问 rows[0].count