Die Auswahl eines Frameworks für Ihre NodeJS-Anwendung kann schwierig sein. Es gibt so viele von ihnen, mit ihren eigenen Stärken und Schwächen. Am Ende des Tages hängt das Framework, das Sie auswählen, von Ihrer Programmierumgebung ab und davon, was Ihre App tun soll. Einige Frameworks sind leicht, schnell und kümmern sich nicht darum, wie Sie Ihre App erstellen. Andere verfügen über mehr Funktionen, zwingen Sie jedoch möglicherweise dazu, ihre Engines zu verwenden und Ihren Code auf eine bestimmte Weise zu organisieren.
Das Ziel dieses Artikels ist es, einige der beliebtesten Node-Frameworks zu vergleichen, damit Sie letztendlich entscheiden können, welches für Ihr Projekt geeignet ist.
Was ist ein Framework?
Im Allgemeinen ist ein Framework ein Unterstützungssystem für Ihre Anwendung. Node bietet eine Reihe von Tools für die Schnittstelle zu Dingen, die Ihre App benötigt, z. B. dem Netzwerk und dem Dateisystem. Ein Framework erweitert diese Fähigkeiten und abstrahiert einige der komplizierteren Aspekte der Entwicklung. Beispielsweise kann ein Handler in Ihrem Code ein Anforderungsobjekt aus dem Netzwerk empfangen. Ein Framework könnte dieses Anforderungsobjekt abfangen, bevor es Ihren Handler erreicht, und einige zusätzliche Methoden und Funktionen hinzufügen, um die Arbeit zu erleichtern.
Es gibt verschiedene Varianten des Node-Frameworks, von denen jede eine andere Programmiererfahrung bietet.
MVC—Frameworks
Die MVC-Architektur (Model View Controller) ist ein nützliches Entwurfsmuster, das die Anwendungslogik in drei Teile aufteilt – Modelle zum Definieren der Form der Daten, Ansichten zum Organisieren der Benutzeroberfläche und Controller zum Kommunizieren zwischen den beiden. Node-Frameworks, die die MVC-Architektur unterstützen, sind nützlich, wenn Sie nicht zu viel Zeit damit verbringen möchten, sich Gedanken über die Organisation Ihres Codes zu machen.
Express
Wir können Express auch zuerst aus dem Weg räumen, da ohne es keine Liste von Knoten-Frameworks vollständig wäre. Express ist immer noch der amtierende Champion der populären Frameworks, wie seine 47.5K Github Stars, 1.8K Watches und 7.7K Forks bestätigen werden. Dies allein macht es zu einer ausgezeichneten Wahl. Es ist robust, gut getestet und es gibt eine große Community, die es pflegt und damit arbeitet, die Sie unterstützen und Fragen beantworten kann.
Express wirbt für sich selbst als „schnelles, meinungsloses, minimalistisches Framework für Node.“ Der Fokus liegt auf Leistung und nur das, was Sie brauchen. Das Framework bietet wenig eigene Funktionen, anstatt eine umfangreiche Middleware-Verkettung zur Verarbeitung von Anforderungen zuzulassen.
Erste Schritte
Erstellen Sie einen Server.js oder app.js-Datei im Stammverzeichnis Ihres Projekts und fügen Sie den folgenden Code hinzu
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
Führen Sie den Server mit
node ./server.js
und besuchen Sie localhost:3000 in Ihrem Browser, um die Antwort anzuzeigen.
Segel
Segel betonen Stabilität und Benutzerfreundlichkeit und bieten viel mehr als Express. Es lehnt sich in die Full-Stack-Richtung und bietet Unterstützung für die Authentifizierung, ein eigenes ORM für die Datenbankanbindung, WebSockets und Templating. Dies bedeutet, dass Sie die bereitgestellte ORM (Waterline) und Templating Engine (EJS) verwenden müssen, obwohl eine Erweiterung namens Consolidate Unterstützung für andere Templating Engines bietet, die mit Express kompatibel sind.) Sails bietet auch einen beeindruckenden API-Generator namens Blueprints, mit dem Sie API-Endpunkte mit minimaler manueller Codierung generieren können. Aus der Sails-Dokumentation:
… wenn Sie einen Benutzer erstellen.js-Modelldatei in Ihrem Projekt, dann mit Blaupausen aktiviert können Sie sofort besuchen / Benutzer / erstellen?name=joe , um einen Benutzer zu erstellen, und visit /user , um ein Array der Benutzer Ihrer App anzuzeigen. Alles ohne eine einzige Zeile Code zu schreiben!
Sails gibt es schon lange und gehört laut Github Stars, Views und Forks zu den beliebtesten Frameworks. Viele große Unternehmen verlassen sich auf Sails, was bedeutet, dass es robust genug ist, um Anwendungen auf Unternehmensebene zu unterstützen.
Erste Schritte
Sails bietet eine leistungsstarke Befehlszeilenschnittstelle, mit der Sie sehr schnell mit einer neuen App loslegen können
npm install -g sailssails new <project_name>
Sie werden aufgefordert, entweder eine Web-App-Vorlage mit integrierter Authentifizierung und Anmeldung oder eine leere App auszuwählen. Sobald Sails die Grundlagen eingerichtet hat, cd in Ihren Projektordner und ausführen
sails lift
Sie können jetzt zu localhost:1337 navigieren, um die generierte Homepage anzuzeigen.
Full-Stack-Frameworks
Full–Stack-Frameworks bieten Struktur und Funktionalität für Ihre gesamte Anwendung – vom Client über den Server bis zur Datenbank. Ein Full-Stack-Framework kann viele Funktionen enthalten, darunter Template-Engines, WebSocket-Bibliotheken und ORMs. Abhängig von der Größe Ihres Teams und Ihrer Anwendung können diese Funktionen sehr nützlich sein oder mehr als Sie benötigen.
Meteor
Meteor ist das am zweithäufigsten markierte, angesehene und gegabelte Knoten-Framework auf Github. Die Community ist lebendig und die Dokumentation ist umfangreich. Die Dokumentation enthält Best Practices, empfohlene Styleguides und viele Tutorials und technische Artikel. Meteor wird mit npm und einem eigenen Paketmanager namens Atmosphere sowie integrierter Unterstützung für einen Mongo-Datenspeicher und einfacher Integration mit React, Angular oder Blaze geliefert. Es ist Meinungs als Express oder Segel.
Meteor verwendet „data on the wire“ im Gegensatz zum serverseitigen Rendern – der Server sendet also Daten, nicht HTML, und der Client rendert sie. Das Meteor-Build-Tool bietet sofort einsatzbereite Unterstützung für Mobilgeräte über Cordova und unterstützt das Hot-Reloading.
Erste Schritte
Das Build-Tool von Meteor erstellt, kompiliert und führt Ihre App aus. Laden Sie es über Curl herunter.
curl https://install.meteor.com/meteor create <project_name>
Dadurch wird die Dateistruktur für alles erstellt, was Sie in einer einfachen Javascript-App benötigen, organisiert in / Client- und / Server-Verzeichnissen. cd in Ihr Projektstamm und führen Sie
meteor run
Die App sollte jetzt auf localhost ausgeführt werden:3000
REST-API-Frameworks
Wenn Sie die Clientseite Ihrer Anwendung abgedeckt haben, benötigen Sie möglicherweise nur ein Framework für den Serverteil Ihres Stacks. In diesem Fall können Sie ein einfaches REST-API-Framework verwenden, um CRUD-Anforderungen an Ihren Server zu verarbeiten. Sie könnten dies so ziemlich mit Express tun, aber es gibt auch Frameworks, die speziell auf diesen speziellen Fall ausgerichtet sind.
Loopback
Loopback ist laut Github das zweitbeliebteste REST-API-Framework. Es wurde von IBM entwickelt und ist ein „hoch erweiterbares Open-Source-Node-Framework auf Basis von Express, mit dem Sie schnell APIs und Microservices erstellen können.“ Es enthält ein Befehlszeilentool zum einfachen Generieren von Projekten und Erstellen von Controllern und Modellen sowie Add-On-Unterstützung für die einfache Authentifizierung und Autorisierung. Es bietet keine Unterstützung für Ansichten oder Vorlagen oder ein dediziertes ORM, da es nur als API verwendet werden soll.
Mit Loopback können Sie in wenigen Minuten eine dynamische API mit minimaler Codierung erstellen. Der Entwicklungszyklus ist sehr schnell, und die Dateistruktur ist sauber und nützlich. Das Setup enthält Optionen zum Konfigurieren von eslint, Prettier, Mocha und Docker direkt aus der Box.
Erste Schritte
npm install -g @loopback/clilb4 <project_name>
Sie werden aufgefordert, mehrere Fragen zur Einrichtung Ihrer App zu beantworten, und die Dateistruktur wird gerüstet. cd in den Projektstamm und führen Sie
npm start
aus Um eine neue Route zu erstellen, führen Sie
lb4 controller
aus und beantworten Sie die Eingabeaufforderungen. Sobald die Controller-Datei erstellt wurde, können Sie die Loopback-get-Funktion importieren und damit den Controller einrichten
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
Zusammenfassung: Bester Knoten.js Frameworks
Rahmen | Leistung | Gemeinschaft | Benutzerfreundlichkeit | Am besten für |
---|---|---|---|---|
Express | Schnell. Fügt wenig hinzu, also nichts, um die rohe Geschwindigkeit des Knotens zu erreichen. | Massiv. Viele Fragen gestellt und beantwortet. | So schwierig, wie Sie es machen wollen. | Große und kleine Projekte. Auch eine gute Möglichkeit zu lernen, wie man mit Knoten arbeitet. |
Segel | Mittel. Der Fokus liegt auf der Verbesserung der Effizienz des Entwicklers gegenüber der Leistung. | Groß. Ein gut etabliertes Projekt, das es schon lange gibt. | Einfach. Blueprints machen es sehr einfach, eine API mit minimaler Codierung zum Laufen zu bringen. | Mittelgroße Projekte, die schnell auf den Weg gebracht werden müssen. |
Meteor | Langsamer. Der Fokus liegt darauf, ein Projekt sehr schnell aufzubauen / zu prototypisieren. | Kleiner, aber lebendig und wachsend. | Einfach. Blueprints machen es sehr einfach, eine API mit minimaler Codierung zum Laufen zu bringen. | Kleine Projekte schnell umsetzen. Machen Sie sich die Hände mit einem neuen Werkzeug schmutzig. |
Loopback | Mittel. | Klein, aber diejenigen, die es lieben, lieben es wirklich. | Einfach, bietet aber nicht so viel im Voraus. | Erstellen einer unternehmensweiten API für ein separates Frontend. |
Schlussfolgerungen
Es ist schwierig, ein definitives „bestes“ Knoten-Framework auszuwählen, da sich das von Ihnen ausgewählte Framework je nach Ihren Anforderungen ändert. Wenn Sie die Freiheit haben möchten, Ihre eigenen Bibliotheken und Integrationen von Drittanbietern auszuwählen, sind Express oder Loopback möglicherweise die beste Wahl. Wenn Ihr Team jedoch innerhalb weniger Tage eine brandneue App von vorne nach hinten erstellen möchte, passen Meteor oder Sails möglicherweise besser zu Ihren Anforderungen.
Es gibt viele andere Frameworks, die über die in diesem Artikel beschriebenen hinausgehen, und der beste Weg, um zu wissen, was für Ihre App oder Ihr Team funktioniert, besteht darin, die Dokumente durchzulesen und einige auszuprobieren.
- Verwendung einer API
- mit JavaScript
- So erstellen Sie eine API
- mit Node.js und Express.js
- So erstellen Sie eine Wetter-App mit Node.js
- So richten Sie einen GraphQL-Server mit Node und Express ein