有谁知道如何使用NodeJS将MySQL结果传递给JSON对象?

// my code
var mysql = require('mysql');
var records = {};

var connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: ''
});

connection.query('USE MyDB');

function getRecords() {
  connection.query("select * from records where id = ?", id, function(err, result) {
    if (err) {
        return done(err);
    }

    records = result;
    return records;
  });
}


从这些代码中,我想在项目的其他操作中使用返回记录。谁能帮助我将MySQL结果传递给JSON对象,以便我可以使用函数外的数据?

谢谢。

最佳答案

它已经是一个对象(更确切地说是一个对象数组)。

假设您的表格结构为:“ field1,field2,field3”

您的结果对象将如下所示:

[
  { //that's result[0], and contains the values of your first result row
    field1 : row0value1,
    field2 : row0value2,
    field3 : row0value3
  },
  { //then result[1], contains the next row, etc...
    field1 : row1value1,
    field2 : row1value2,
    field3 : row1value3
  },
   ...
]


因此,您可以将结果作为普通数组访问,并将每个字段作为result [i]的属性访问

然后,您需要知道与Node中的其他所有内容一样,查询将异步运行。因此,您可以使用回调来获取您的价值。

向函数添加回调:

function getRecords(cb) {
  connection.query("select * from records where id = ?", id, function(err, result) {
    if (err) throw(err);
    cb(result);
  });
}


然后,当需要结果时,可以使用:

getRecords(function(res){
  records = res;
});

09-25 18:18
查看更多