Javascript NodeJS+;mysql:选择返回单个对象的查询
我已经使用Javascript NodeJS+;mysql:选择返回单个对象的查询,javascript,mysql,node.js,Javascript,Mysql,Node.js,我已经使用mysqlNPM包好几个月了,没有遇到任何问题。但是这个代码表现得很奇怪 using(connectionPool.getSqlConnection(), function(connection) { return connection.queryAsync('SELECT * from table_name'); }).spread(function(rows, fields) { console.log('Rows: %j', rows);
mysql
NPM包好几个月了,没有遇到任何问题。但是这个代码表现得很奇怪
using(connectionPool.getSqlConnection(), function(connection) {
return connection.queryAsync('SELECT * from table_name');
}).spread(function(rows, fields) {
console.log('Rows: %j', rows);
console.log('Fields: %j', fields);
res.json(rows);
}).error(function(err) {
console.log(err);
});
我知道桌子上有50行。但是我在行中只得到了1个。而且,奇怪的是,字段
有第二行。知道为什么会这样吗?我在其他地方使用了相同的查询,没有问题
编辑
我拨弄了一下,发现每一行都是作为一个单独的对象出现的。因此,如果我将代码更改为以下内容:
using(connectionPool.getSqlConnection(), function(connection) {
return connection.queryAsync('SELECT * from table_name');
}).spread(function(r1, r2, r3, r4) {
console.log('Rows: %j', r1);
console.log('Rows: %j', r2);
console.log('Rows: %j', r3);
console.log('Rows: %j', r4);
res.json(rows);
}).error(function(err) {
console.log(err);
});
r1、r2、r3、r4。。。有一个单行对象。回答自己的问题,这样可以帮助其他人
using(connectionPool.getSqlConnection(), function(connection) {
return connection.queryAsync('SELECT * from table_name');
}).then(function(rows) {
console.log('Rows: %j', rows);
res.json(rows);
}).error(function(err) {
console.log(err);
});
这很有效 我相信这就是spread
函数的行为。简单地使用.query
怎么样?看到“是”这个词了吗。谢谢