4
关注
2091
浏览

一个简单的Nodejs MySQL查询

为什么被折叠? 0 个回复被折叠
风涧澈司 未验证用户 用户来自于: 广东省
2020-09-17 03:03
如果您重命名字段在SQL查询中,您可以将它们作为属性进行访问。因此,如果您使用"select count(*) AS 'result' from TABLE";,则可以访问33作为row.result或您在SQL查询中使用的任何其他名称。 所以我通常做的是别名我请求的所有SQL字段,然后将所有行都推送到一个数组,然后使用Object.assign将该数组映射到该数组,以将所有RowDataPackets转换为普通对象。 我使用下面的结构使用MySQL模块: const NOOP =() => {}; const server = { "host" : "localhost", "user" : "honolulu", "password" : "honolulu", "database" : "db" }; const connection = MYSQL.createConnection(server); connection.connect(error => { if (error) { // handle error } // else NOOP(); }); const sql = "select count(*) AS 'result' from TABLE"; const query = connection.query(sql); const resultSet = []; query.on('error', error => { // handle query error }); // Incoming field packets, if any, preceding the resultSet rows. No operation. query.on('fields', NOOP); // Every time a row gets returned, this handler is triggered. query.on('result', row => resultSet.push(row)); // All rows have been returned query.on('end',() => { // do something with the resultSet. });
kenfu 未验证用户 用户来自于: 广东省
2020-09-16 12:23

由于结果是:

var theCount = result[0]['count(*)']; 

所以,你的代码适应,这将是::

con.query('select count(*) from qpsc',function (err, result) { 
    if (err) throw err; 
    but = result[0]['count(*)']; 
    console.log(but); 
}); 
newbie2005 未验证用户 用户来自于: 广东省
2020-09-16 06:54

你的结果变量是

[ RowDataPacket { 'count(*)': 33 } ] 

你可以得到33一个对象数组,在查询中选择每个字段的键。

您可能会在result[0]["count(*)"]条目中找到您的计数,但这有点丑陋。

我会建议使用的别名在您的SQL查询,使其更加优雅:

select count(*) as many from qpsc 

这样的话,你可以检索你的计数是这样的:

var yourCount = result[0].many; 

关于作者

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 16:04
关注人数
4 人关注

相关问题

比较2个阵列值推只有第一个结果
PCJ上的Nodejs Mariadb超时未触发mariadb事件
form提交的遍历数据库中数据只能获取最后一个怎么办?
的NodeJS - 异步/等待内部控制器
如何开发一个简单的聊天APP
如何开发一个象QQ的聊天软件?
无法使用JSON和PHP将URL链接存储到MySQL中
我想做一个社交聊天软件,用什么软件来做呀
请问C/C++编程的运行结果只有一个小黑框scanf和printf,这样有什么用
设计一个类模板,用于存储不同类型的多个无序元素,用sort对数组中的元素进行排序
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号