2016-02-27 69 views
0

我是一個相對節點的新手(老學校程序員)在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://stackoverflow.com/questions/14379274/javascript-iterate-object?noredirect=1&lq=1)是你的答案。 –

回答

3

如果我正確理解你的問題(你不想也得行[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的價值...因爲我不知道字段名稱...現在用谷歌搜索.... –

2

我可以通過下面的代碼來解決相同。

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

我不知道,如果莫哈末代碼的工作,但我沒有得到下面的代碼爲我工作:

對於我的列標題...

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>"); 
     } 
    }