在Nodejs中对字段进行迭代MySQL结果集

问题描述:

我是一个相对节点的新手(老学校程序员)在Nodejs中对字段进行迭代MySQL结果集

我有工作代码来抓取结果集并解析行。我使用felx的node-mysql驱动程序。专门打印列并不难。

connection.query('SELECT * FROM Company', function(err, rows, fields) { 
    if (err) throw err; 

    for (var i = 0; i < rows.length; i++) { 
     theShit = ""; 
     theShit = theShit + ('| ' + rows[i].name + ' | ' + rows[i].address_zip); 
     theEmail = theEmail + theShit + "<BR>"; 
} 

我真正想要做的是通过场循环,而无需他们的名字......我的直觉告诉我,这将是rows[i].[j] ...或者类似的东西。

这可能吗?

+0

我相信[this](https://*.com/questions/14379274/javascript-iterate-object?noredirect=1&lq=1)是你的答案。 –

如果我正确理解你的问题(你不想也得行[I]。名称每次)

您可以使用For...of假设我所有的MySQL数组对象。

所以,你可以这样做:

connection.query('SELECT * FROM Company', function(err, rows, fields) { 
if (err) throw err; 

    for (var i = 0; i < rows.length; i++) { 
    for (obj of row[i]) { 
     //obj = whatever field its currently on (name, email, w/e) 
     theShit = ""; 
     theShit = theShit + ('| ' + rows[i].name + ' | ' + rows[i].address_zip); 
     theEmail = theEmail + theShit + "<BR>"; 
    } 
} 
+0

你在正确的轨道上...我只需要知道如何获得一个obj的价值...因为我不知道字段名称...现在用谷歌搜索.... –

我可以通过下面的代码来解决相同。

Object.keys(result.rows[index]).forEach(function(key) { 
    var val = result.rows[index][key]; 
    console.log('key is: ' + key); 
    console.log('val is: ' + val); 
}); 

我不知道,如果莫哈末代码的工作,但我没有得到下面的代码为我工作:

对于我的列标题...

theShit = "<TR>"; 
    for (var i = 0; i < fields.length; i++) { 
    console.log(fields[i].name); 
    theShit = theShit + ("<TH>" + fields[i].name + "</TH>"); 
    } 

...和每行...

for (var i = 0; i < rows.length; i++) { 
    theShit = "<TR>"; 
    // hardcoded way -> theShit = theShit + ('| ' + rows[i].name + ' | ' + rows[i].address_zip); 
    myObj = rows[i]; 
    for(var j in myObj) { 
     if (myObj.hasOwnProperty(j)) { 
     theShit = theShit + ("<TD>" + myObj[j] + "</TD>"); 
     } 
    }