Wie stellt man eine Node.js-Anwendung bereit?

how_to_deploy_nodejs_app

In diesem Artikel erklären wir, wie man eine Node JS-Anwendung bereitstellt. Wir sprechen über die Vor- und Nachteile von Node und die Bereitstellungsoptionen – einschließlich IaaS, PaaS und BaaS. Zum Schluss werden wir eine Node-Anwendung auf Back4app bereitstellen.

Was ist Node.js?

Node.js ist eine quelloffene und plattformübergreifende JavaScript-Laufzeitumgebung, die auf der V8 JavaScript-Engine von Chrome basiert. Node zielt darauf ab, JavaScript-Entwicklern die Möglichkeit zu geben, Server-seitige Operationen zu programmieren. Zu den Anwendungsfällen gehören serverseitiges Scripting, Echtzeitanwendungen, Streaming-Webanwendungen, Single-Page-Anwendungen (SPAs), Tools für die Zusammenarbeit und Webspiele.

Node hat eine ereignisgesteuerte Architektur, die asynchrone E/A ermöglicht. Aufgrund seiner Fähigkeit, JavaScript in nativen Maschinencode zu kompilieren, ist es rasend schnell. Es kann eine enorme Anzahl aktiver Verbindungen verarbeiten und ermöglicht Entwicklern die einfache Erstellung skalierbarer, hochleistungsfähiger Anwendungen.

Die Technologie wurde erstmals 2009 von ihrem Erfinder Ryan Dahl auf der jährlichen europäischen JSConf vorgestellt. Sie wurde sofort zu einer der interessantesten Softwarekomponenten im JavaScript-Ökosystem.

Die Popularität von Node erreichte 2017 ihren Höhepunkt und bleibt hoch. Es ist eines der beliebtesten Entwicklungstools, das von vielen millionenschweren Unternehmen wie IBM, LinkedIn, Microsoft, Netflix und so weiter verwendet wird. Durch seine Einfachheit und Skalierbarkeit ist es für alle Unternehmensgrößen geeignet – auch für Start-ups.

In den nächsten beiden Abschnitten werden wir uns mit den Vor- und Nachteilen von Node beschäftigen.

Vorteile von Node.js

Hohe Leistung

Wie in der Einleitung erwähnt, wird Node von Googles leistungsstarker JavaScript-Engine angetrieben. V8 kann JavaScript blitzschnell kompilieren und ausführen, hauptsächlich weil es JavaScript in nativen Maschinencode kompiliert.

Node verwendet auch eine Ereignisschleife, die es ermöglicht, nicht-blockierende E/A-Operationen durchzuführen – obwohl JavaScript eine Single-Thread-Programmiersprache ist. Dies macht es zu einer der schnellsten Optionen auf dem Markt.

Skalierbarkeit

Einer der wichtigsten Vorteile von Node.js ist seine Skalierbarkeit. Node-Anwendungen können sowohl horizontal als auch vertikal skaliert werden. Horizontale Skalierung wird durch das Hinzufügen zusätzlicher Knoten zu einem bestehenden System erreicht, während vertikale Skalierung das Hinzufügen zusätzlicher Ressourcen zu einem bestimmten Knoten bedeutet. Die großartigen Skalierungsoptionen der Plattform machen sie sowohl für Startups als auch für große Unternehmen mit mehreren Millionen täglichen Nutzern wie LinkedIn, Netflix und PayPal geeignet.

Node eignet sich auch sehr gut für Microservices-Architekturen und ermöglicht es Entwicklern, kleine Komponenten zu erstellen, die in eine kontinuierliche Bereitstellungspipeline passen und bei Bedarf leicht skaliert werden können.

Leicht zu erlernen

Da Node auf JavaScript basiert, ist es für Entwickler, die bereits die Grundlagen von JavaScript beherrschen, extrem einfach zu erlernen. Es hat keine steile Lernkurve und kann in nur wenigen Wochen erlernt werden. Dank seiner Einfachheit eignet sich Node hervorragend für alle Arten von Projekten.

Schnellere Markteinführung

Die Markteinführungszeit ist einer der wichtigsten Maßstäbe für viele Entwicklungsteams. Jeder möchte sein Produkt so schnell wie möglich auf den Markt bringen, und mit Node können Sie genau das tun.

Die Einfachheit von Node und die große Anzahl von npm-Paketen verkürzen die Markteinführungszeit drastisch. Auf GitHub und anderen Plattformen gibt es eine Reihe von Open-Source-Projekten, die als Vorlagen verwendet werden können, um Ihr Projekt so schnell wie möglich zum Laufen zu bringen.

Kampferprobtes Werkzeug

Node ist ein kampferprobtes und ausgereiftes Tool, das es seit 2009 gibt. Seine Stabilität wurde von großen Unternehmen wie eBay, Netflix und LinkedIn getestet, die täglich Millionen von Nutzern haben.

Aufgrund seiner großartigen Vorzüge ist Node in einer Reihe von Tech-Stacks enthalten (normalerweise in Kombination mit Express und einer NoSQL-Datenbank). Einige der Tech-Stacks mit Node umfassen:

  • MERN
  • MEAN
  • DERN

Großartige Gemeinschaft

Node.js hat eine starke und aktive Gemeinschaft von Entwicklern und Enthusiasten, die ständig zu Node beitragen, um es besser und besser zu machen. Falls Sie einmal mit einem Problem nicht weiterkommen oder eine Frage haben, gibt es eine Reihe von Stellen, an denen Sie nach Hilfe suchen können. Aufgrund der Popularität von Node ist es nicht schwer, bereits fertige Lösungen und Code auf GitHub zu finden.

Eine weitere großartige Sache an Node.js ist sein Paketmanager namens npm (Node Package Manager). Npm ermöglicht es Entwicklern, vorgefertigte JavaScript-Pakete zu pushen und zu verwenden, anstatt das Rad neu zu erfinden. Diese Pakete können die Entwicklungskosten und die Komplexität von Anwendungen erheblich reduzieren. Zum Zeitpunkt der Erstellung dieses Artikels gibt es mehr als 1,3 Millionen Pakete, die auf npm gehostet werden.

Beschränkungen von Node.js

Geringere Leistung bei komplexen Aufgaben

Der größte Nachteil von Node.js ist seine Unfähigkeit, rechenintensive Aufgaben auszuführen. Heutzutage erfordern viele Programme und Algorithmen eine Parallelisierung, um optimale Ergebnisse zu erzielen. Wie Sie bereits wissen, basiert Node.js auf JavaScript, das als Single-Thread-Frontend-Sprache konzipiert wurde und nicht mehrere Threads unterstützt.

Mit dem Update 10.5 hat das Node.js-Team Multithreading-Unterstützung in Form von Worker-Threads eingeführt. Dieses Modul ermöglicht es Entwicklern, zusätzliche Threads aus einem Thread-Pool zu nutzen. Auch mit den Worker-Threads ist Node immer noch nicht für umfangreiche Berechnungen geeignet. Wenn Ihre Projektanforderungen komplexe Berechnungen, schwere Berechnungen oder Parallelisierung umfassen, sind Sie mit einer anderen Programmiersprache vielleicht besser bedient.

Asynchrones Programmiermodell

Node.js verwendet das asynchrone Programmiermodell. Aus diesem Grund ist es stark auf die Verwendung von Rückrufen angewiesen. Rückrufe sind Funktionen, die im Hintergrund ablaufen und (irgendwann) ein Ergebnis zurückgeben. Durch die Verwendung von Callbacks kann Ihr Code unübersichtlicher und schwieriger zu debuggen werden. Wenn Sie außerdem Callbacks mehrere Ebenen tief verschachteln, kann es zu einer sogenannten Callback-Hölle” kommen.

Die Rückrufhölle und andere Probleme der asynchronen Programmierung lassen sich leicht vermeiden, wenn man die Grundsätze eines sauberen Codes beachtet.

Instabile API

Ein weiteres großes Problem mit Node.js ist die Instabilität der Anwendungsprogrammierschnittstelle (API). Die API von Node ändert sich häufig mit rückwärts-inkompatiblen Änderungen, die Teile des Codes zerstören können. Daher müssen Node-Entwickler auf Änderungen achten und sicherstellen, dass ihre Codebasen mit den neuesten Node.js-API-Versionen kompatibel sind.

Fehlen eines starken Unterstützungssystems für Bibliotheken

JavaScript verfügt im Vergleich zu anderen Programmiersprachen nicht über ein gutes Bibliothekssystem. Dies zwingt viele Entwickler dazu, die Unterstützung verschiedener gängiger Aufgaben wie Bildverarbeitung, XML-Parsing, objektrelationales Mapping (ORM), Umgang mit Datenbanken und mehr zu übernehmen.

Ein ausuferndes und unausgereiftes Modulregister

Node hat eine große Gemeinschaft von Entwicklern, die Tausende von Open-Source-Modulen produzieren, die auf npm veröffentlicht werden. Das Problem dabei ist, dass npm keine Prüfungen durchführt, die sicherstellen, dass der Modulcode funktioniert und gut geschrieben ist.

Viele Module werden zufällig nicht mehr unterstützt oder funktionieren nicht mehr mit neueren Node-Versionen und die Entwickler sind dann gezwungen, nach einer Alternative zu suchen. In der Vergangenheit wurden einige der npm-Module auch gehackt und mit Viren und Krypto-Minern infiziert. Aus diesem Grund ist es schwierig, Module zu finden, die in einer Unternehmensumgebung verwendet werden können.

Verstehen Sie mich nicht falsch, ich denke, npm ist großartig, aber Sie sollten trotzdem vorsichtig sein, wenn Sie zufällige Module installieren.

Node.js-Bereitstellungsoptionen

Es gibt mehrere Möglichkeiten, eine Node.js-Anwendung zu implementieren. Im Allgemeinen können wir sie in die folgenden vier Gruppen unterteilen:

  1. Konventionelles Hosting
  2. Infrastruktur als Dienstleistung (IaaS)
  3. Plattform als Dienstleistung (PaaS)
  4. Backend als Dienstleistung (BaaS)

Wir können sie in einem Pyramidendiagramm auf der Grundlage ihres Abstraktionsniveaus darstellen:

Cloud-Bereitstellungsmodelle

Die Bereitstellungsoptionen kümmern sich um die folgenden Abstraktionsschichten:

IaaS vs. PaaS vs. BaaS

Werfen wir einen Blick auf jede der Gruppen. Wir überspringen das konventionelle Hosting, da Sie sicher wissen, wie das funktioniert.

IaaS-Dienste wie AWS

Infrastructure as a Service (IaaS) ist ein Cloud-Computing-Dienstmodell, das Rechenressourcen wie Server, Netzwerke, Betriebssysteme und Speicher in einer virtualisierten Umgebung bereitstellt. Diese Cloud-Server werden dem Unternehmen in der Regel über hochentwickelte APIs oder erweiterte Dashboards zur Verfügung gestellt, die den Kunden die vollständige Kontrolle über die gesamte Infrastruktur ermöglichen.

IaaS ist hochgradig skalierbar. Es ermöglicht den Kunden eine einfache vertikale und horizontale Skalierung je nach Bedarf. IaaS-Anbieter arbeiten in der Regel nach dem Pay-as-you-go-Modell, d. h. Sie zahlen nur für die Ressourcen, die Sie verbrauchen.

IaaS kam in den frühen 2010er Jahren auf und wurde seitdem zum Standardabstraktionsmodell für viele Arten von Arbeitslasten. Selbst mit dem Aufkommen neuer Technologien wie Microservices und Serverless bleibt IaaS die beliebteste Option.

Im Gegensatz zu PaaS und BaaS bietet IaaS die geringste Kontrolle über die Ressourcen in der Cloud. Damit ist es das flexibelste Cloud-Computing-Modell. Der Nachteil ist, dass der Kunde vollständig für die Verwaltung von Aspekten wie Anwendungen, Betriebssysteme, Middleware und Daten verantwortlich ist, was normalerweise viel Zeit in Anspruch nimmt.

Einige typische IaaS-Beispiele sind:

  • Amazon Web Services (AWS)
  • Google Compute Engine (GCE)
  • Microsoft Azure
  • DigitalOcean
  • Linode
  • Rackspace

PaaS-Dienste wie Heroku

Platform as a Service (PaaS) ist ein Cloud-Computing-Dienstmodell, das Nutzern eine Cloud-Umgebung bietet, in der sie Anwendungen entwickeln, verwalten und bereitstellen können. Neben der Bereitstellung von Computerressourcen enthält PaaS eine Reihe von vorgefertigten Tools für die Entwicklung, Anpassung und Prüfung von Anwendungen. Bei den meisten PaaS-Anbietern können Sie Ihre Anwendung mit wenigen Klicks zum Laufen bringen!

PaaS ermöglicht es den Nutzern, sich auf ihre Anwendung zu konzentrieren, anstatt die zugrunde liegende Infrastruktur zu verwalten. PaaS-Anbieter nehmen Ihnen eine Menge Arbeit ab, z. B. die Verwaltung Ihrer Server, Betriebssysteme, Serversoftware, Backups und vieles mehr.

Einige der Vorteile von PaaS sind:

  • Schnellere Markteinführung
  • Erhöhte Sicherheit
  • Kosten-Wirksamkeit
  • Skalierbarkeit
  • Hohe Verfügbarkeit
  • Weniger Code erforderlich

Die Nachteile von PaaS sind, dass Sie höchstwahrscheinlich von den Fähigkeiten des Anbieters abhängig sind, dass die Gefahr besteht, sich zu binden, und dass es an Flexibilität und Kontrolle mangelt. PaaS ermöglicht es den Nutzern jedoch, Anwendungen schneller zu entwickeln und ist weniger aufwändig zu verwalten.

PaaS-Dienste umfassen:

  • Heroku
  • AWS Elastic Beanstalk
  • DigitalOcean App-Plattform
  • Microsoft Azure App-Dienst
  • Die Fly-Plattform (Fly.io)
  • Rendering

BaaS-Dienste wie Back4app

Backend as a Service (BaaS) ist eine Plattform, die die Backend-Seite der Entwicklung automatisiert und sich um die Cloud-Infrastruktur kümmert. Darüber hinaus bietet sie Funktionen wie Benutzerverwaltung, E-Mail-Benachrichtigungen, Push-Benachrichtigungen, Cloud-Code-Funktionen, Integrationen in soziale Medien, Dateispeicherung und Zahlungen.

So können sich die Entwickler auf das Kerngeschäft und die Entwicklung des Frontends konzentrieren, ohne sich um das zugrunde liegende Backend und die Infrastruktur kümmern zu müssen. Das Frontend wird in der Regel über spezielle APIs und SDKs entwickelt, die vom BaaS-Anbieter angeboten werden. Dadurch sind die Anwendungen weniger komplex und leichter zu pflegen.

BaaS bietet alle Vorteile von IaaS und PaaS, aber auch die Abstraktion des Backends. Teams, die BaaS nutzen, verkürzen die Markteinführungszeit erheblich, senken die Entwicklungskosten und benötigen weniger Ingenieure.

BaaS kann für viele Arten von Projekten verwendet werden – einschließlich der Erstellung eines MVP (Minimum Viable Product), eigenständiger Anwendungen oder Anwendungen, die nur eine geringe Anzahl von Integrationen erfordern, sowie Unternehmensanwendungen, die nicht unternehmenskritisch sind.

Die Nachteile von BaaS sind die geringere Flexibilität im Vergleich zu IaaS und PaaS, der geringere Grad an Kontrolle und Anpassung sowie die Möglichkeit, sich auf nicht quelloffene Plattformen festzulegen.

Ein paar BaaS-Beispiele:

  • Back4app
  • AWS Amplify
  • Firebase
  • Parsen
  • Cloudkit
  • Backendlos

Node.js-Bereitstellungsprozess

In diesem Teil des Artikels schauen wir uns Back4app an und lernen, wie man eine Node JS-Anwendung erstellt und einsetzt

Was ist Back4app?

Back4app ist eine der besten Open-Source-Backend-as-a-Service-Lösungen (BaaS) auf dem Markt. Sie bietet ihren Nutzern eine breite Palette von Funktionen und Vorteilen, die es Entwicklern ermöglichen, schnell Web- und Mobilanwendungen zu erstellen. Durch den Einsatz von Back4app können Sie sich auf Ihr Kerngeschäft konzentrieren, anstatt sich um das Backend oder die zugrunde liegende Infrastruktur zu kümmern.

Die Lösung verfügt über ein funktionsreiches und einfach zu bedienendes Dashboard und eine Befehlszeilenschnittstelle (CLI). Sie bieten auch SDKs für alle Ihre Lieblings-Tools wie Flutter, React Native, Node.js, Angular, Android, iOS & mehr!

Zu den wichtigsten Funktionen von Back4app gehören:

  • Tabellenkalkulationsähnliche Datenbank
  • REST- und GraphQL-APIs
  • Live-Abfragen
  • Authentifizierung (einschließlich sozialer Authentifizierung)
  • Skalierbares Hosting
  • Push- und E-Mail-Benachrichtigungen

Weitere Informationen zu den Funktionen finden Sie unter Back4app-Funktionen.

Back4app verfolgt ein einfaches und unkompliziertes Preismodell, das für Apps jeder Größe geeignet ist. Sie bieten einen großzügigen kostenlosen Plan (keine Kreditkarte erforderlich), der sich hervorragend für Prototypen und zum Testen der Plattform eignet. Es umfasst:

  • 25k Anfragen
  • 250 MB Datenspeicher
  • 1 GB Übertragung
  • 1 GB Dateispeicher

Weitere Informationen über die Preise von Back4app finden Sie auf der Seite Preise.

Projekt-Einführung

Wir werden eine einfache TODO-Webanwendung programmieren und bereitstellen. Die Webanwendung wird grundlegende CRUD-Operationen unterstützen – Erstellen, Abrufen, Aktualisieren und Löschen. Wir werden sie in Node.js unter Verwendung des Express-Web-Frameworks programmieren, die Datenspeicherung wird von Parse übernommen, und wir werden Twig als Template-Engine verwenden.

Klicken Sie hier, um die eingesetzte App in Aktion zu sehen!

Voraussetzungen:

  • Grundlegendes Verständnis von Node.js
  • Grundlegendes Verständnis von Express
  • Erfahrung mit einer Templating Engine
  • Grundlegendes Verständnis von Datenbanken und ParseJS

Back4app CLI

Für die folgenden Schritte benötigen Sie ein Back4app-Konto. Wenn Sie bereits ein Konto haben, loggen Sie sich ein, ansonsten melden Sie sich für das kostenlose Konto an.

Back4app CLI ist eine Kommandozeilen-Schnittstelle, die es Ihnen ermöglicht, mit der Back4app-Plattform zu interagieren.

Um es auf Mac/Linux zu installieren, führen Sie aus:

$ curl https://raw.githubusercontent.com/back4app/parse-cli/back4app/installer.sh | sudo /bin/bash

Der Befehl lädt die neueste CLI-Binärdatei herunter und speichert sie in /usr/local/bin/b4a.

Für andere Betriebssysteme lesen Sie bitte die offiziellen Dokumente.

Um die CLI zu verwenden, müssen Sie sich mit Ihrem Konto authentifizieren. Dazu müssen Sie zunächst einen Account-Schlüssel generieren. Navigieren Sie zu Ihrem Back4app-Dashboard und klicken Sie auf Ihren Benutzernamen (oben rechts auf dem Bildschirm) und dann auf “Account Keys”:

Back4app Kontoschlüssel

Um einen neuen Kontoschlüssel hinzuzufügen, geben Sie einen benutzerdefinierten Schlüsselnamen ein und drücken Sie dann auf “+”. Notieren Sie sich den Schlüssel, da wir ihn im nächsten Schritt benötigen:

Back4app Kontoschlüssel

Nachdem Sie den Schlüssel erfolgreich erstellt haben, gehen Sie zurück zum Terminal und führen Sie aus:

$ b4a configure accountkey

Input your account key or press ENTER to generate a new one.       
NOTE: on pressing ENTER we'll try to open the url:                 
        "http://dashboard.back4app.com/classic#/wizard/account-key"
in default browser.
Account Key: <YOUR_GENERATED_ACCOUNT_KEY>
Successfully stored account key for: "<YOUR_EMAIL>".

Um sicherzugehen, dass die Authentifizierung funktioniert hat, versuchen Sie, Ihre Anwendungen aufzulisten:

$ b4a list

These are the apps you currently have access to:

Wenn Ihr Konto ganz neu ist, wie bei mir, werden keine Anwendungen aufgelistet.

App erstellen

Lassen Sie uns nun eine Back4app-App erstellen.

Laufen:

$ b4a new

Would you like to create a new app, or add Cloud Code to an existing app?
Type "(n)ew" or "(e)xisting": n
Please choose a name for your Parse app.
Note that this name will appear on the Back4App website,
but it does not have to be the same as your mobile app's public name.
Name: nodejs-back4app
Awesome! Now it's time to set up some Cloud Code for the app: "nodejs-back4app",
Next we will create a directory to hold your Cloud Code.
Please enter the name to use for this directory,
or hit ENTER to use "nodejs-back4app" as the directory name.

Directory Name:
You can either set up a blank project or create a sample Cloud Code project
Please type "(b)lank" if you wish to setup a blank project, otherwise press ENTER: 
Successfully configured email for current project to: "<YOUR_EMAIL>"
Your Cloud Code has been created at /dev/nodejs-back4app.
  1. Erstellen Sie eine neue oder bestehende Anwendung: neu
  2. App-Name wählen: Wählen Sie einen eigenen Namen
  3. Verzeichnisname: ENTER drücken
  4. Leeres oder Beispiel-Cloud-Code-Projekt: ENTER drücken

Der Befehl erstellt ein Verzeichnis mit der folgenden Struktur:

nodejs-back4app/
├── cloud/
│   └── main.js
├── public/
│   └── index.html
├── .parse.local
└── .parse.project
  1. cloud ist ein Verzeichnis für den gesamten Cloud-Code und die Funktionen
  2. public ist ein Verzeichnis für öffentliche Dateien wie Bilder, Stylesheets und mehr
  3. .parse.local und .parse.project werden zum Speichern der Parse-Konfiguration verwendet

Löschen Sie die Dateien main.js und index.html, da wir sie nicht mehr benötigen werden.

Webhosting

Da wir eine Node.js-App erstellen, müssen wir das Webhosting für Back4app aktivieren, um unsere App zu hosten und sie öffentlich im Internet zugänglich zu machen.

Um die Webhosting-Funktion zu aktivieren, navigieren Sie zu Ihrem Back4app-Dashboard, wählen Sie Ihre App aus, klicken Sie auf “App-Einstellungen” auf der linken Seite des Bildschirms und dann auf “Servereinstellungen”. Suchen Sie nach “Webhosting und eigene Domains” und klicken Sie erneut auf “Einstellungen”.

Klicken Sie auf “Activate Back4app Hosting” und wählen Sie einen Subdomainnamen. Ich werde nodejsback4app verwenden:

Back4app Webhosting

Klicken Sie abschließend auf “Speichern”.

Ihre App wird dann unter folgender Adresse zugänglich sein:

https://<your_subdomain>.b4a.app/

Sie können auch eine benutzerdefinierte Domain mit Ihrer Webanwendung verknüpfen!

Express mit Cloud-Code-Funktionen

Als Nächstes beginnen wir mit der Arbeit am eigentlichen Code.

Wechseln Sie in das Verzeichnis cloud und erstellen Sie darin die Datei package.json:

Back4app verwendet diese Datei, um Module über npm herunterzuladen. Wir haben body-parser hinzugefügt, da wir ihn später zum Parsen von Anfragen benötigen.

Als Nächstes erstellen Sie eine weitere Datei im Ordner clouds mit dem Namen app.js:

Diese Datei wird zur Initialisierung und Konfiguration von Express verwendet. Wir haben auch einen Endpunkt definiert, der im nächsten Schritt als Sicherheitsprüfung verwendet wird. Wie Sie sehen können, mussten wir keine App definieren oder irgendwelche Abhängigkeiten verlangen, da Back4app dies automatisch für uns erledigt.

Als nächstes stellen Sie die Anwendung bereit:

$ b4a deploy

Uploading source files
Uploading recent changes to scripts...
Finished uploading files
New release is named v1 (using Parse JavaScript SDK v2.2.25)

Der Befehl wird Ihre Quelldateien zu Back4app hochladen, alles konfigurieren und Ihre App unter der Subdomain verfügbar machen, die Sie im vorherigen Abschnitt ausgewählt haben.

Um sicherzustellen, dass es funktioniert, öffnen Sie Ihren bevorzugten Webbrowser und navigieren Sie zu Ihrer App:

https://<your_subdomain>.b4a.app/

# Example
https://nodejsback4app.b4a.app/

Sie sollten die folgende Antwort erhalten:

Gute Arbeit!

In den nächsten Abschnitten werden wir mit der Arbeit an der eigentlichen TODO-App beginnen.

Datenbank mit ParseJS

Definieren wir nun die Datenbankmodelle für die TODO-App.

Navigieren Sie zum Back4app-Dashboard und wählen Sie “Datenbank” auf der linken Seite des Bildschirms. Klicken Sie dann auf “Neue Klasse erstellen”, nennen Sie sie Task und setzen Sie ein Häkchen bei “Öffentliches Lesen und Schreiben aktiviert”:

Back4app neue Klasse erstellen

Fügen Sie dann die folgenden Spalten hinzu:

+-----------+-------------+---------------+----------+
| Data type | Name        | Default value | Required |
+-----------+-------------+---------------+----------+
| String    | name        | <leave blank> | yes      |
+-----------+-------------+---------------+----------+
| String    | description | <leave blank> | no       |
+-----------+-------------+---------------+----------+
| Boolean   | isDone      | false         | yes      |
+-----------+-------------+---------------+----------+

Anwendung Logik

Die App wird die folgenden Endpunkte haben:

  1. / die Liste der Aufgaben anzeigen
  2. /create erstellt eine Aufgabe
  3. / zeigt die Aufgabendetails an
  4. / /delete löscht eine Aufgabe
  5. / /toggle schaltet den Status der Aufgabe um – erledigt/unerledigt

Schaffen wir sie.

Um unseren Cloud-Code besser pflegen zu können, teilen wir ihn in zwei Dateien auf.

  1. app.js – initialisiert und konfiguriert den Express-Server
  2. routes.js — definiert Endpunkte und ihre Logik

Ein noch besserer Ansatz für die Erstellung moderner Webanwendungen ist die Verwendung eines Model-View-Controller (MVC) Architekturmusters. Ein guter Start mit Express ist die Verwendung von express-generator.

Ersetzen Sie den Inhalt von app.js durch den folgenden Text:

  1. Wir haben Twig als Standard-View-Engine festgelegt.
  2. Routen werden nicht mehr in dieser Datei definiert, sondern in routes.js.

Erstellen Sie nun die Datei routes.js und fügen Sie den folgenden Code ein:

Wir haben alle oben genannten Routen definiert und Parse verwendet, um die Daten zu bearbeiten und zu speichern. Wie Sie sehen können, sind alle Routen asynchron, da wir auf die Antwort von Parse warten müssen. Außerdem ist der größte Teil des Codes in try-catch-Blöcke verpackt, falls etwas schief geht.

Weitere Informationen zu ParseJS finden Sie im JavaScript-Leitfaden.

Als Nächstes wollen wir die Endpunkte mit Ansichtsvorlagen versehen.

Erstellen Sie einen Ordner ” views” im Ordner ” clouds”, laden Sie die Vorlagendateien aus dem GitHub-Repository herunter und legen Sie sie im Verzeichnis ” views” ab.

Ihre endgültige Verzeichnisstruktur sollte wie folgt aussehen:

nodejs-back4app/
├── cloud/
│   ├── views/
│   │   ├── base.twig
│   │   ├── create.twig
│   │   ├── error.twig
│   │   ├── index.twig
│   │   └── task.twig
│   ├── app.js
│   ├── routes.js
│   └── package.json
├── public
├── parse.local
└── parse.project

Zuletzt fügen Sie twing zu package.json hinzu, um die Twig-Unterstützung zu aktivieren:

Stellen Sie die Anwendung bereit:

$ b4a deploy

Uploading source files
Uploading recent changes to scripts...
Finished uploading files
New release is named v2 (using Parse JavaScript SDK v2.2.25)

Und schon sind Sie fertig. Warten Sie ein paar Minuten und besuchen Sie dann die Web-App, um sicherzustellen, dass alles funktioniert.

Öffentliche Dateien

Wie im vorherigen Abschnitt erwähnt, stellt Back4app automatisch Dateien im öffentlichen Ordner bereit. Um sie in Ihren Vorlagen zu verwenden, müssen Sie Ihre Express-Einstellungen leicht ändern.

Gehen Sie zu app.js und fügen Sie die folgenden Zeilen hinzu:

Sie können dann in Ihren Vorlagen über den relativen Pfad auf öffentliche Dateien verweisen:

<img src="/back4app.png" alt="Back4app Logo">

Zeigt das Bild an, das sich in public/back4app.png befindet.

Schlussfolgerung

Node hat sich seit seiner Veröffentlichung im Jahr 2009 stetig weiterentwickelt und verbessert. Es ist eines der besten Tools, mit dem Entwickler auf einfache Weise skalierbare, hochperformante Anwendungen erstellen können.

Node-Apps können auf verschiedenen Lösungen wie IaaS, PaaS und SaaS bereitgestellt werden. Jede dieser Lösungen hat ihre Vor- und Nachteile, die bei der Auswahl der Bereitstellungsoption berücksichtigt werden sollten.

Eine der einfachsten Möglichkeiten zur Bereitstellung von Node-Anwendungen ist die Verwendung von Back4app – einer Open-Source-BaaS-Lösung mit zahlreichen Funktionen. Back4app ist großartig, da es Ihnen erlaubt, sich auf das Wesentliche zu konzentrieren, während Sie das Backend und seine Bereitstellung auslagern.

Holen Sie sich den endgültigen Quellcode aus dem back4app-nodejs Repo.

Um mehr über Node.js-Hosting-Optionen zu erfahren, schauen Sie sich bitte How to host a Node.JS app using containers an.


Leave a reply

Your email address will not be published.