我是学习节点的新手,很抱歉有一个菜鸟问题。 我有mysql运行和存储proc返回字段。 我想将值分配给字符串变量并循环遍历每一行。 我在c#中做了很多,但我对节点上的菜鸟太过分了。
控制台中的结果是。
console.log(one) ->
[RowDataPacket {
CitySearchSearchEngineID: 1,
SearchURL: 'https://www.url.com' } ]
OkPacket {
fieldCount: 0,......
}
以上情况很好,
的console.log(one.SearchURL); - >未定义
我一直在努力解决这个问题,并且无法弄清楚为什么我无法获得价值。我尝试了一些不同的方法。如果我执行JSON.stringify,它会将行提供给字符串就好了。
任何想法都会受到赞赏。
以下代码。
var db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'secretpassword',
database: 'DB1',
port: 3306
});
db.connect(function(err){
if(err){
console.log('Error connecting to Db');
return;
}
console.log('Connection established');
});
db.query('CALL esp_Select_SearchURLs()', function(err, rows){
if(err) throw err;
_.each(rows, function(one){
console.log(one); // returns back in console the RowPacketData
console.log(one.SearchURL); // returns back undefined.
});
});
答案 0 :(得分:0)
由于某种原因,您的one
可能是一个数组,所以请{I} {} {}}。
答案 1 :(得分:0)
基本上,OkPacket信息干扰了从阵列中获取信息。
if(one.constructor.name != 'OkPacket') {
console.log(one[0].SearchURL);
}