有谁知道如何使用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;
});