'Cannot read property 'Länge' undefined' nodeJS
Ich bin der Einstieg in die Node.js und ich bin völlig verwirrt, warum kann ich nicht die Ergebnisse bekommen von meiner SQL-Abfrage auf einer Seite gerendert, ich bin mit sqlite3.
Dies ist ein Teil meiner index.js Datei
router.get('/students', function (req, res, module) {
var fs = require("fs");
var file = "./test.db";
var exists = fs.existsSync(file);
if (!exists) {
console.log("Creating DB file.");
fs.openSync(file, "w");
}
var sqlite3 = require("sqlite3").verbose();
var db = new sqlite3.Database(file);
db.serialize(function () {
if (!exists) {
db.run("Create table students ( ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, Nom varchar (255), Prenom varchar (255) );");
}
});
db.all('SELECT * FROM students', function selectCb(err, rows, fields) {
if (err) {
throw err;
}
for (var i in rows) {
console.log(rows[i]);
}
res.render('showResults.jade', {
results: rows
});
});
db.close();
res.render('students', { title: 'list' });
});
Dies ist mein Jade (erstellen.jade-Datei);
block content
form(method='get', action='/students/create')
button(type='submit') Creer
ul
each item, i in results
li #{item.Nom} (#{item.Prenom})
li= JSON.stringify(item)
Habe ich alle diese Dinge in meinem express app, die ich starte es mit meiner shell, erhalte ich die sql-Daten wie diese:
{ ID: 1, Nom: 'zeze', Prenom: 'zeze' }
{ ID: 2, Nom: 'ertty', Prenom: 'uuuuuuuuuuu' }
Aber mein /Schüler-Seite eine Meldung anzeigen
http://i.stack.imgur.com/ormUG.png
Könnten Sie mir bitte helfen, ich bin echt verzweifelt.
(Sorry für mein schlechtes Englisch, ich bin Französisch) ^^
InformationsquelleAutor Trigamma | 2014-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
und diese Linie
Den Variablen-Namen nicht übereinstimmen.
Aus dem Bild, ich kann sehen, dass Sie das rendering der Seite als
students.jade
. Für die Seite, die Sie senden variabletitle
zu Jade, aber Sie erklärt, dass die variable aufgerufen werden würderesults
in Jade.InformationsquelleAutor paradite
Haben Sie versucht, entfernen die zweite
res.render
nennen?Ist es möglich, dass es der ist, der aufgerufen wird, anstatt die erste einer seit der async-Aufruf der DB ist noch nicht beendet, wenn die Ausführung erreicht die zweite
res.render
nennen.InformationsquelleAutor Emanuel Saringan
db.close() sollte verschoben werden innerhalb des query-callback-denn es schließt die db-Verbindung herzustellen, bevor Sie die Abfrage hat die chance, zu beenden. Hier ist der überarbeitete code:
InformationsquelleAutor Ben