Я учусь использовать mysql
модуль в Node.js, поэтому я использую его с Express
& Mustache
для отображения таблицы MySQL и придумал это:для (... в ...) цикл не работает в node.js
var express = require('express');
var app = express();
var mu2 = require('mu2');
mu2.root = __dirname + '/views';
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "root",
port: 3306,
database: 'breakthrough'
});
con.connect(function (err) {
if (err) {
console.log('Error connecting to database:\n' + err);
return;
}
});
app.get('*', function (req, res) {
var tableHTML;
function renderTable(rows) {
tableHTML = "<table>";
for (var row in rows) {
tableHTML += "<tr>";
for (var cell in row) {
tableHTML += ("<td>" + cell + "</td>");
}
tableHTML += "</tr>";
}
tableHTML += '</table>';
}
con.query('SELECT * FROM drivers', function (err, rows){
if (err) { throw(err); }
renderTable(rows);
htmlStream = mu2.compileAndRender('frontPage.html', {table: tableHTML});
htmlStream.pipe(res);
});
});
app.listen(8080, function() {
console.log("Listening on port 8080.");
});
Но результирующая таблица только показывают нули, один для каждой строки:
<table>
<tr><td>0</td></tr>
<!-- tr repeated for each row in rows -->
</table>
Некоторые чтения предполагают, что итерация объектов в Node.js в настоящее время весьма проблематично. Есть ли способ, которым я могу лениво перебирать объекты node.js?
'cell' - это индекс. Если вы хотите получить содержимое, вам нужно напечатать 'row [cell]' (а также перебрать строку 'row [row]'). – JJJ