有谁知道如何使用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对象,这样我就可以使用函数外的数据了吗?
谢谢。
答案 0 :(得分:2)
它已经是一个对象(更确切地说是一个对象数组)。
我们假设你的桌面结构是:' 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;
});