Einführung in Sails.js

Sails ist ein Javascript-Framework, das der MVC-Architektur von Frameworks wie Ruby on Rails ähnelt. Es vereinfacht die Erstellung von Node.js-Apps, insbesondere APIs, Single-Page-Apps und Echtzeit-Funktionen wie Chat.


Installation

Das Installieren von Sails ist ziemlich einfach. Voraussetzung ist, dass Node.js installiert ist und auch npm, das mit Node geliefert wird. Dann muss man im Terminal den folgenden Befehl ausgeben:

sudo npm install sails -g

Erstellen Sie ein neues Projekt

Um ein neues Sails-Projekt zu erstellen, wird der folgende Befehl verwendet:

segelt neues myNewProject

Segel erzeugt einen neuen Ordner mit dem Namen myNewProject und fügen Sie alle erforderlichen Dateien hinzu, um eine Basisanwendung zu erstellen. Um zu sehen, was erzeugt wurde, geh einfach in die myNewProject Ordner und führen Sie den Sails-Server aus, indem Sie im Terminal den folgenden Befehl eingeben:

Segel heben

Der Standardport von Sails ist 1337, also, wenn Sie besuchen http: // localhost: 1337 Sie sollten den Standardwert für Sails erhalten index.html Seite.


Nun schauen wir uns an, was Sails für uns generiert hat. In unserer myNewProject In diesem Ordner wurden folgende Dateien und Unterordner erstellt:


Das Vermögenswerte Mappe

Das Vermögenswerte Ordner enthält Unterverzeichnisse für die Javascript- und CSS-Dateien, die zur Laufzeit geladen werden sollen. Dies ist der beste Ort zum Speichern von Zusatzbibliotheken, die von Ihrer Anwendung verwendet werden.

Das Öffentlichkeit Mappe

Enthält die öffentlich verfügbaren Dateien, z. B. Bilder, die Ihre Site verwendet, das Favicon usw.

Das Konfig Mappe

Dies ist einer der wichtigen Ordner. Segel ist flexibel gestaltet. Es setzt einige Standardkonventionen voraus, erlaubt dem Entwickler jedoch auch, die Art und Weise zu ändern, wie Sails die erstellte App an die Anforderungen des Projekts anpasst. Im Folgenden finden Sie eine Liste der Konfigurationsdateien, die in vorhanden sind Konfig Mappe:

  • adapters.js - zur Konfiguration der Datenbankadapter
  • application.js - Allgemeine Einstellungen für die Anwendung
  • assets.js - Asset-Einstellungen für CSS und JS
  • bootstrap.js - Code, der ausgeführt wird, bevor die App gestartet wird
  • locales - Ordner mit Übersetzungen
  • Policies.js - Konfiguration der Benutzerrechteverwaltung
  • routen.js - die Wege für das System
  • views.js - verwandte Einstellungen anzeigen

Das sails.js Die Dokumentation enthält detaillierte Informationen zu jedem dieser Ordner.

Das Ansichten Mappe

Die Ansichten der Anwendung werden in diesem Ordner gespeichert. Beim Blick auf den Inhalt stellen wir fest, dass die Ansichten standardmäßig als EJS (Embedded JavaScript) generiert werden. Auch die Ansichten Ordner enthält Ansichten zur Fehlerbehandlung (404 und 500) sowie die Layoutdatei (layout.ejs) und die Ansichten für den Heimcontroller, die von Sails generiert wurden.

Das api Mappe

Dieser Ordner besteht aus einer Reihe von Unterordnern:

  • das Adapter Ordner enthält die von der Anwendung verwendeten Adapter
    handhabt Datenbankverbindungen
  • das Steuerungen Ordner enthält die Anwendungscontroller
  • Die Modelle der Anwendung werden im gespeichert Modelle Mappe
  • in dem Politik Ordner sind Regeln für den Zugriff der Anwendungsbenutzer gespeichert
  • Die von der App implementierten API-Dienste werden im gespeichert Dienstleistungen
    Mappe

Konfigurieren Sie die Anwendung

Bisher haben wir unsere Anwendung erstellt und uns angesehen, was standardmäßig generiert wurde. Jetzt ist es an der Zeit, die Anwendung so zu konfigurieren, dass sie unseren Anforderungen entspricht.

Allgemeine Einstellungen

Allgemeine Einstellungen werden im gespeichert config / application.js Datei. Die konfigurierbaren Optionen für die Anwendung sind:

  • Anwendungsname (App Name)
  • der Port, an dem die App zuhören wird (Hafen)
  • die Anwendungsumgebung; kann entweder Entwicklung oder Produktion sein (Umgebung)
  • die Stufe für den Logger, die zur Steuerung der Größe der Protokolldatei verwendet werden kann (Log)

Beachten Sie dies, indem Sie die App einstellen Umgebung sails bündeln und minimieren CSS und JS, was das Debuggen erschweren kann.

Routen

Applikationswege sind in definiert config / routes.js Datei. Wie zu erwarten, wird diese Datei am häufigsten verwendet, wenn Sie der Anwendung neue Controller hinzufügen.

Die Routen werden wie folgt in die Konfigurationsdatei exportiert:

module.exports.routes = // Route zur Indexseite des Home-Controllers '/': Controller: 'Home', // Route zum Auth-Controller, Login-Aktion '/ login': Controller: 'auth' , action: 'login', // zum Blog-Controller weiterleiten, Aktion zum Hinzufügen eines Posts zu einem Blog hinzufügen // Beachten Sie, dass wir auch die HTTP-Methode / das Verb vor dem Pfad 'post / blog / add' verwenden: controller: 'blog', action: 'add_post', // routen, um den ersten Blogbeitrag zu erhalten. Die Suchaktion gibt // die Datenbankzeile zurück, die die gewünschten Informationen enthält: '/ blog /: item': controller: blog, action: find

Ansichten

In Bezug auf Ansichten sind die konfigurierbaren Optionen die zu verwendende Vorlagen-Engine und, wenn ein Layout für Ansichten verwendet werden soll oder nicht.


Modelle

Modelle sind eine Darstellung der in einer Datenbank gespeicherten Anwendungsdaten. Modelle werden mithilfe von Attributen und Assoziationen definiert. Zum Beispiel die Definition von a Person Das Modell könnte so aussehen:

// Person.js var Person = Name: 'STRING', Alter: 'INTEGER', Geburtsdatum: 'DATE', Telefonnummer: 'STRING', emailAddress: 'STRING'; Exporte = Person;

Die Kommunikation mit der zugrunde liegenden Datenbank erfolgt über Adapter. Adapter sind in definiert API / Adapter und sind in der konfiguriert adapters.js Datei. Zum Zeitpunkt des Schreibens dieses Artikels enthält Sails drei Adapter: Speicher, Festplatte und Mysql. Sie können jedoch auch einen eigenen Adapter schreiben (Einzelheiten finden Sie in der Dokumentation)..

Wenn Sie ein Modell definiert haben, können Sie es bearbeiten, indem Sie Datensätze erstellen, Datensätze suchen, Datensätze aktualisieren und zerstören.


Controller

Controller werden eingesetzt API / Controller. Ein Controller wird mit dem folgenden Befehl erstellt:

Segel generieren Controller-Kommentar

Dieser Befehl erzeugt eine CommentController Objekt. Aktionen werden in diesem Objekt definiert. Aktionen können auch generiert werden, wenn Sie das ausgeben Controller generieren Befehl:

Segel generieren Controller Kommentar erstellen zerstören Tag wie

Dadurch wird ein erstellt Kommentar Controller mit Aktionen für erstellen, zerstören, Etikett und mögen.

Aktionen erhalten als Parameter die Anfrage und die Antwortobjekte, die zum Abrufen von Parametern des URI (Anforderungsobjekt) oder zur Ausgabe in der Ansicht (mithilfe des Antwortobjekts) verwendet werden können..

Um mit dem Modell zu kommunizieren, wird der Rückruf der entsprechenden Aktion verwendet. Zum Beispiel bei der Abfrage einer Datenbank mit finden, Das folgende Muster wird verwendet, um das Modell zu bearbeiten:

Blog.find (id) .done (err, blog) // blog ist der Datenbankeintrag mit der angegebenen id console.log (blog.content); 

Ansichten

Ansichten werden verwendet, um die Benutzeroberfläche der Anwendung zu behandeln. Standardmäßig werden Ansichten mit EJS behandelt, es kann jedoch jede andere Vorlagenbibliothek verwendet werden. Wie Sie Ansichten konfigurieren, wurde zuvor im Kapitel Konfiguration beschrieben.

Ansichten sind im definiert / Ansichten Verzeichnis und die Vorlagen sind in der definiert / Assays / Vorlagen Mappe.

Es gibt hauptsächlich vier Arten von Ansichten:

  • serverseitige Ansichten
  • Teilbilder anzeigen
  • Layoutansichten
  • Ansichten auf Client-Seite

Serverseitige Ansichten

Ihre Aufgabe ist es, Daten anzuzeigen, wenn der Client eine Ansicht anfordert. Normalerweise die Methode res.view entspricht einem Client mit der entsprechenden Ansicht. Wenn für eine Anforderung kein Controller oder keine Aktion vorhanden ist, wird die Ansicht in der folgenden Weise von Sails bereitgestellt: /views/:controller/:action.ejs.

Die Layoutansicht

Das Layout finden Sie in /views/layout.ejs. Es wird verwendet, um die Anwendungsressourcen wie Stylesheets oder JavaScript-Bibliotheken zu laden.

Schauen Sie sich die angegebene Datei an:

   <%- title %>    <%- assets.css() %> <%- assets.js() %>   <%- body %>  <%- assets.templateLibrary() %>  

Die Linien assets.css () und assets.js () Laden Sie die CSS- und JS-Assets unserer Anwendung und die assets.templateLibrary lädt die Client-Vorlagen.

Clientseitige Vorlagen

Diese sind in der definiert / Assets / Vorlagen und werden geladen, wie wir oben gesehen haben.


Routen

Wie Sie Routen konfigurieren, wurde im Kapitel Konfiguration beschrieben.

Es gibt mehrere Konventionen, die Sails befolgt, wenn Routen behandelt werden:

  • wenn die URL nicht im angegeben ist config / routes.js Die Standardroute für eine URL lautet /: Controller /: Aktion /: ID mit den offensichtlichen Bedeutungen für Controller und Action und Ich würde der von der URL abgeleitete Anforderungsparameter ist.
  • ob :Aktion nicht angegeben ist, wird Sails zur entsprechenden Aktion umgeleitet. Standardmäßig werden die gleichen REST-konformen Routenkonventionen wie in Backbone verwendet.
  • Wenn der angeforderte Controller / die gewünschte Aktion nicht vorhanden ist, verhält sich Sails folgendermaßen:
    • Wenn eine Ansicht vorhanden ist, rendert Sails diese Ansicht
    • Wenn eine Ansicht nicht vorhanden ist, aber ein Modell vorhanden ist, gibt Sails das JSON-Formular dieses Modells zurück
    • Wenn keiner der oben genannten Punkte vorliegt, antwortet Sails mit einem 404

Fazit

Jetzt habe ich kaum die Oberfläche gekratzt, was Sails tun kann, aber bleiben Sie dran, denn ich werde mit einer ausführlichen Präsentation fortfahren, die Ihnen zeigt, wie Sie eine Anwendung mithilfe von Sails erstellen.

Denken Sie auch daran, dass sich Sails derzeit in der Entwicklung befindet und sich ständig ändert. Schauen Sie sich also die Dokumentation an, um sich über Neuigkeiten zu informieren.