Letzte Woche bin ich mit dem Sails -Framework in Kontakt gekommen, indem ich ein CMS -System errichtete und einige der Konzepte von ORM erfuhr. Diese Woche stießen wir tief in die Interaktion mit Hintergrunddaten ein und stellten fest, dass die Datenstruktur des zwanzig Frameworks auf Segeln (wie Knoten und Kategorie) entwickelt wurde. Ich muss sagen, dass mein Senior unglaublich ist. Aber auch die Komplexität hat zugenommen. Meine Aufgabe im DTREE -Projekt ist es, Segel zu verwenden, um mit Geschäftsprozessen und Datenbanken zu interagieren. Das nächste Mal in dieser Woche ist die Verwendung von Segeln.
Einführung in Segel
Sails ist wie Ruby on Rails und es ist auch ein Rahmen, um die Webentwicklung einfach zu machen. Soweit ich in diesem Zeitraum weiß, erbt es einige APIs von Express & Socket.io und verwendet Waterline (ORM) für einheitliche Datenbankinteraktion, sodass CRUD -Operationen in verschiedenen Datenbankumgebungen abgeschlossen werden können, ohne den Code direkt zu ändern. Synchronisiert die Daten der Vorder- und Rückseite mit dem Backbone -Framework und verwendet die Richtlinien Middleware, um die Interaktion ihrer eigenen Blaupausen sicher zu überprüfen. Es kann durch die Pastfull -API ohne eine einzige Codezeile im vorderen und hinteren Ende interagieren.
Socket.io & Express
Das Front-End hat diese beiden Dinge rechtzeitig gelernt, einer ist Websock-Kommunikation und das andere ist, HTTP-Anfragen zu verarbeiten. Sails wird nicht neu gestaltet, verwendet jedoch diese beiden Tools, um diese Funktionen direkt zu bewältigen, wodurch die Lernkosten stark reduziert werden. Socket.io löst Nachrichten aus, hört nach Nachrichten und führt Operationen sowohl auf dem Server als auch auf dem Client entsprechend aus.
Die Codekopie lautet wie folgt:
`
// Serverseite
io.sockets.on ("Verbindung", Funktion (Sock) {
SOCK.EMIT ("NormalMessage", {a: "c"});
});
//Kundendienst
SOCK.ON ("NormalMessage", Funktion (JSON) {...});
`
Die Funktion von Express liegt in Routing -Operationen wie app.get ('/login', function (req, res) {});.
Segel Blaupausen & Rückgrat
In der Webentwicklung ist CRUD eine ähnliche Art von Operation, z. B. GET/Post in HTTP und in der Datenbank auswählen/einfügen. Die Blueprint -API von Segel und das Backbone -Framework von JS verwenden beide eine einheitliche Klasse von Funktionen (wie FindOne), so dass die interne Logik bereits festgelegt ist, wenn das Programm das Modell und den entsprechenden Controller festgelegt hat. Zum Beispiel hat das häufig verwendete Benutzermodell einen Controller in Segeln erstellt, um die Daten der Benutzer zu übergeben und zu speichern. Alles, worauf wir achten müssen, sind die Spezifikationen und Geschäftsprozesse von Dateinamen. Es ist auch in Ordnung, wenn Sie die ursprüngliche Methode überschreiben (Überlastung). Nachdem wir die Aktion und den Controller in den Routen im Konfigurationsordner eingestellt haben, können wir die Funktionen hinzufügen, die wir dem entsprechenden Controller benötigen.
Wasserlinie
Mit der API des segelabhängigen Pakets können wir mit Datenbanken wie Create (), findOne (), update () usw. interagieren. Wie bereits erwähnt, müssen wir uns nicht über verschiedene Datenbank -Tools sorgen, um diese Methoden direkt einheitlich aufzurufen. Zum Beispiel beim Eingeben von Daten
Die Codekopie lautet wie folgt:
`
Benutzer.create ({Benutzername: Benutzername, Passwort: Passwort}). Exec (Funktion (Fehler, Benutzer) {
if (Fehler) {
Res.Send (500, {Fehler: "DB -Fehler"});
} anders {
req.Session.user = user;
Res.Send (Benutzer);
}
`
Das Standardsystem besteht darin, Daten im lokalen Dateisystem zu speichern. Wenn wir MySQL oder MongoDB wählen müssen. Ändern Sie es einfach in der Konfigurationsdatei und wählen Sie den Datenbankadapter aus, um mit den Daten zu interagieren.
Richtlinien
Angewendet auf die Middleware auf dem Controller, ausgeführt, bevor die HTTP -Anfrage ausgestellt wird. Die Identitätskontrolle kann erreicht werden, beispielsweise können Sie nur die nächsten Aktionen ausführen, wenn Sie sich anmelden.
Die Codekopie lautet wie folgt:
`
if (req.session.user) {
var action = req.options.Action;
if (action == "create") {
req.body.userid = req.session.user.id;
req.body.username = req.session.user.username;
}
nächste();
}anders{
res.send ("Sie müssen angemeldet sein", 403);
}
`
nächste
Die Segel begannen erfolgreich, aber es muss noch härter daran arbeiten. Nur wenn wir ein solides Fundament legen, können wir spezifische Bedürfnisse erfüllen. Daher müssen wir weiter lernen, mehr Routinen finden, um Segle ausführlich zu lernen, und auch die Grenzen dieses Rahmens kennen.