Das Lernen dieser Woche liegt hauptsächlich in der Datenbankinteraktion von NodeJS und wir verwenden die JADE-Vorlage, um eine benutzerverifizierte Website gemeinsam zu erstellen. Hauptsächlich habe ich auf mehrere Probleme gestoßen.
1. Die MongoDB -Version ist zu niedrig
NPM Err! Nicht mit Ihrem Betriebssystem oder Architektur kompatibel: [email protected]
0.9.9 unterstützt nur Linux-, Darwin- und FreeBSD -Systeme, und die neueste Version unterstützt Siege.
2. Nachdem Nodejs Einfügung Operation ausgeführt hat: Das Ergebnis kann nicht gelesen werden
Die Codekopie lautet wie folgt:
app.post ('/Signup', Funktion (req, res, next) {
// das Dokument einfügen
app.users.insert (req.body.user, function (err, doc) {
wenn (err) als nächstes zurückgeben (err);
res.redirect ('/login/' + doc [0] .Email);
});
});
Das Erscheinen ist, dass die Umleitung fehlgeschlagen ist, und die tatsächliche Situation ist, dass die Einführung der Datenbank erfolgreich war, aber der DOC leer ist, geschweige denn der Wert von DOC [0]. Der Grund dafür ist, dass Operationen wie Insert asynchron durchgeführt werden. Asynchrone Operationen geben ihre Ergebnisse standardmäßig nicht zurück, um festzustellen, ob sie erfolgreich ausgeführt werden. Diese Funktion muss implementiert werden, indem der dritte Parameter {sicher: ture} addiert, nämlich app.users.insert (req.body.user, {sicher: ture}, function () {...}). Auf diese Weise wird das Ergebnis erfolgreich gelesen.
3.. Connect-Connect Undefined Store wird angezeigt
Die Codekopie lautet wie folgt:
Mongostore = Request ('Connect-Mongo')
app.use (express.session ({{
Geheimnis: Setting.cookiesecret,
Geschäft: New Mongostore ({{
DB: Setting.db
})
}));
Der Quellcode ist wie oben. Der Grund ist, dass das Connect-Mongo-Modul basierend auf verschiedenen Versionen von Express unterschiedlich eingeführt wird. Es gibt auch eine besondere Erinnerung in seiner Readme.md.
Die Codekopie lautet wie folgt:
Mit Ausdruck4:
var session = fordert ('Express-Session');
var mongostore = required ('connect-mongo') (Sitzung);
app.use (Sitzung ({{{
Geheimnis: Einstellungen.Cookie_secret,
Geschäft: New Mongostore ({{
DB: Setting.db,
})
}));
Mit Ausdruck <4:
var express = require ('express');
var mongostore = required ('connect-mongo') (Express);
app.use (express.session ({{
Geheimnis: Einstellungen.Cookie_secret,
Geschäft: New Mongostore ({{
DB: Setting.db
})
}));
Für verschiedene Versionen ändern Sie sie bitte entsprechend.
4. Zusammenfassung
Nachdem ich dieses Buch studiert habe, kenne ich einige der Merkmale von NodeJS und der Active Fremd Language -Website. Die Häufigkeit von Aktualisierungen einiger populärer Abschnitte im Knoten hat auch die Schwierigkeit des Lernens erhöht, sodass dieses Buch als einführend angesehen werden kann. Als nächstes planen wir, Segel -Backend -Framework durch praktische Kampf zu lernen. Die während des Studiums aufgetretenen Probleme werden auch im Notebook aufgezeichnet.