NodeJs-MySQL SELECT没有返回正确的输出

时间:2017-09-04 17:58:19

标签: mysql node.js

NodeJs-MySQL上的W3School教程:SELECT cmmand不提供正确格式的输出。在每行输出" RowDataPacket"这个词出现了。如何避免呢?

C:\Users\Raju>node demo_db_select.js
[ RowDataPacket { id: 1, name: 'John', address: 'Highway 71' },
  RowDataPacket { id: 2, name: 'Peter', address: 'Lowstreet 4' },

我使用了以下代码:

    var mysql = require('mysql');

    var con = mysql.createConnection({
      host: "localhost",
      user: "yourusername",
      password: "yourpassword",
      database: "mydb"
    });

    con.connect(function(err) {
      if (err) throw err;
      con.query("SELECT * FROM customers", function (err, result, fields) {
        if (err) throw err;
        console.log(result);
    });
  });

2 个答案:

答案 0 :(得分:0)

var data = [ 
    RowDataPacket { id: 1, name: 'John', address: 'Highway 71' },
    RowDataPacket { id: 2, name: 'Peter', address: 'Lowstreet 4' }
]

这意味着内部对象是类RowDataPacket的instane。你仍然可以简单地使用它:

data[0].id // 1
data[0].name // John
data[1].name // Peter

答案 1 :(得分:0)

您正在执行MySQL查询并将选定的行和列存储在结果变量中。实际上结果是一个对象。因此,运行for循环并打印我在代码中编写的所有值。

试用此代码:

var mysql = require('mysql'); 
var con = mysql.createConnection({ host: "localhost", user: "yourusername", password: "yourpassword", database: "mydb" });
con.connect(function(err) { 
if (err) throw err;
con.query("SELECT * FROM customers", function (err, result, fields) { 
if (err) throw err;
for(let i in result){
    console.log("id="+result[i].id);
    console.log("Name="+result[i].name);
console.log("address="+result[i].address);
}
    });
});