I mysql
Modul in node.js verwenden lerne, so dass ich es mit Express
& Mustache
eine MySQL-Tabelle zu machen und kam mit dies: für (... in ...) Schleife funktioniert nicht in 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.");
});
Aber die resultierende Tabelle nur Nullen zeigen, eine für jede Zeile:
<table>
<tr><td>0</td></tr>
<!-- tr repeated for each row in rows -->
</table>
Einige Lesungen deuten darauf hin, dass in node.js über Objekte iterieren derzeit recht problematisch ist. Gibt es irgendeine Möglichkeit, über Objekte von node.js zu iterieren?
'Zelle' ist der Index. Wenn Sie den Inhalt haben wollen, müssen Sie 'row [cell]' ausdrucken (und auch über 'rows [row]' iterieren). – JJJ