如何提取Node.js中来自SQL的结果

时间:2018-10-28 05:01:03

标签: javascript sql node.js knex.js

我对使用Node.js的SQL很陌生,我使用 knex raw来运行sql查询,我想添加两列

这是我的代码

db.raw("SELECT SUM(`column1`) + SUM(`column2`) FROM `sales` AS `total`")
 .then(result => console.log(result[0]))

如果我正在运行它,我将在控制台中获取它

 [RowDataPacket {
    'SUM(`column1`) + SUM(`column2`)': 33458338.169500016 } ]

我期望得到

 [RowDataPacket {
    'total': 33458338.169500016 } ]

但是,因为它的名字无关紧要,所以我只想要数字,所以我尝试了这个

db.raw("SELECT SUM(`column1`) + SUM(`column2`) FROM `sales` AS `total`")
 .then(result => console.log(result[0]['SUM(`column1`) + SUM(`column2`)']))

我在控制台中得到 undefined

如何获取总数?

2 个答案:

答案 0 :(得分:0)

您应该使用

java.sql.SQLException: Parameter index out of range.

这将解决您的第一部分,并且由于SELECT SUM(`column1`) + SUM(`column2`) AS `total` FROM `sales` 的输出仍然显示一个数组,因此您可以考虑使用result[0]

答案 1 :(得分:0)

为什么不这样:

db.('sales').sum({ total: ['column1', 'column2'] })