NodeJS + mysql:选择返回单个对象的查询

时间:2016-03-17 08:40:24

标签: javascript mysql node.js

我使用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行。但我在rows只得到1。另外,奇怪的是fields有第二行。知道为什么会这样吗?我在其他地方使用了相同的查询,没有任何问题。

修改

我摆弄了一下,发现每一行都是一个单独的对象。因此,如果我将代码更改为以下内容:

 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,...中的每一个都有一个单行对象。

1 个答案:

答案 0 :(得分:0)

回答自己,以便帮助别人。

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);
    });

这很有效。