在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]
...或者类似的东西。
这可能吗?
答
如果我正确理解你的问题(你不想也得行[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>");
}
}
我相信[this](https://*.com/questions/14379274/javascript-iterate-object?noredirect=1&lq=1)是你的答案。 –