sql查询数据总条数后怎么接收count(1)或者count(*)的值?
昨天在写项目时,利用nodejs部署的服务器去查询数据库中所有数据的条数时,出现一个问题,那就是给我返回了一个前端无法接收的字段。
// sql语句是这样的
const sql = 'select count(1) from products'
// nodejs中发送的代码是这样的
res.send({
status: 200,
msg: '获取所有数据的条数',
result
})
当我在前端请求时发现,给我返回的result字段中,键竟然是count(1)
,如果去引用的话,JavaScript代码会自动将其视为函数的调用,所以会直接报错count is not a function
,后来去网上查了一下关于这个问题,虽然没直接找到,但是我发现了一个方法(还是对sql语句不熟悉,看来抽时间要好好学学sql语句了),那就是将上边的sql语句改为:
const sql = 'select count(1) as result from products'
这样就可以了,将count(1)
的值存储进result
中,然后利用es6
的键值对简写方式就可以获取到了,如果as
后换成其他变量名,那么发送数据时就应该写成result: 其他变量名
了,在前端请求并获取到的数据就是一个正常的键名result
了,对应的就是总条数的值。
转载自:https://segmentfault.com/a/1190000041439926