Im Jahr 2021 war JavaScript die am weitesten verbreitete Programmiersprache.
Die Attraktivität dieser Technologie ist unbestreitbar, wie die große Anzahl von Frameworks zeigt, die die JavaScript-Programmierung ermöglichen.
Es gibt Angular, React und Vue im Frontend sowie Express und Next im Backend, um nur einige zu nennen.
Bei so vielen wunderbaren Frameworks für die Backend-Programmierung in JavaScript, auf die zugegriffen werden kann, denken Sie vielleicht, warum ich nach etwas anderem suchen sollte, anstatt einfach Express oder Next zu verwenden.
Vielleicht müssen Sie den Entwicklungsprozess schnell mit einem anständigen Boilerplate starten, und das manuelle Hinzufügen nicht nur neuer Controller, sondern auch von Diensten macht Sie krank.
Oder Sie möchten große, skalierbare Software erstellen, die einfach zu verwalten ist. Oder vielleicht möchten Sie einfach effizienter und bequemer arbeiten.
Unabhängig davon, was in Ihren Umständen zutrifft, kann Nest.js die perfekte Lösung für Ihre Anforderungen sein.
Dieser Beitrag bietet NestJS-Einblicke sowie praktische Erfahrungen.
Was ist NestJS?
NestJS ist ein progressives Node-Framework, das Open Source, erweiterbar und anpassbar ist .js Framework für den Aufbau, das Einbinden und das Herausfordern von Backend-Systemen. Es ist jetzt der Knoten mit der schnellsten Wachstumsrate.
TypeScript-Framework für js. NestJS wird verwendet, um Anwendungen zu erstellen, die skalierbar, testbar und lose verbunden sind.
Es fügt Node Skalierbarkeit hinzu. Js-Server wurden auf eine ganz neue Ebene gebracht. PostgreSQL, MongoDB und MySQL gehören zu den unterstützten Datenbanken.
NestJS ist erweiterbar, da es mit anderen Bibliotheken verwendet werden kann; flexibel aufgrund seines anpassungsfähigen, vollwertigen Ökosystems. Und progressiv, da es JavaScript-Funktionen und Designprinzipien unterstützt.
Es wird hauptsächlich von Angular, React und Vue beeinflusst und verfügt über eine integrierte Abhängigkeitsinjektion.
Eigenschaften
- Es ist einfach zu bedienen, zu erlernen und zu beherrschen.
- Es ist kostenlos und Open-Source (MIT-Lizenz)
- Leistungsstarke Befehlszeilenschnittstelle (CLI) für erhöhte Produktivität und einfache Entwicklung
- Unit-Testing-Programme, die einfach zu verwenden sind
- TypeScript, eine eng typisierte Sprache, die eine Obermenge von JavaScript ist, wird verwendet.
- Entwicklung und Pflege einer aktiven Codebasis.
- Unterstützung für Hunderte von Nest-spezifischen Modulen, die die Anbindung an beliebte Technologien und Ideen wie TypeORM, Mongoose, GraphQL, Protokollierung, Validierung, Caching, WebSockets und mehr vereinfachen.
Was sind die Bausteine von NestJS?
Die Gebäudekomponenten von Nest-Anwendungen sind unten aufgeführt; es gibt noch andere, aber diese drei sind die bedeutendsten. Schauen wir sie uns schnell an.
1. Controller
Verantwortliche sind für die Bearbeitung eingehender Anfragen und die Beantwortung von Kundenanfragen zuständig. Es empfängt bestimmte HTTP-Anforderungen, und das Routingsystem bestimmt, welcher Controller welche Anforderung erhält.
Anschließend entwirft es eine passende Antwort zum Versenden. Mit Hilfe von Klassen und Dekorateuren wird ein einfacher Kollektor erstellt und jeder Controller hat seine eigenen Routen für verschiedene Aufgaben.
2. Anbieter
Anbieter sind eine Schlüsselidee in Nest. Viele der Nest-Kernklassen – Dienste, Repositorys, Fabriken, Helfer usw. – können als Anbieter behandelt werden.
Die Grundidee eines Providers ist, dass er als Abhängigkeit injiziert werden kann; dies impliziert, dass Objekte verschiedene Assoziationen miteinander eingehen können und die Rolle des „Verdrahtens“ von Instanzen von Objekten hauptsächlich an das Nest-Laufzeitsystem ausgelagert werden kann.
3 Module
Ein Modul ist eine Klasse mit dem @Module()-Dekorator, der die Komponenten der Anwendungsstruktur organisiert. Jede Anwendung hat ein Wurzelmodul, das verwendet wird, um den Anwendungsgraphen zu erstellen, der die Abhängigkeiten und Wechselwirkungen zwischen dem Anbieter und dem Modul weiter auflöst.
Dieser Decorator übergibt Metadaten an Nest.js, um zu identifizieren, welche Komponenten, Controller oder andere Ressourcen im Anwendungscode verwendet werden, und kombiniert sie zu einem einzigen Satz.
Jedes Modul verfügt über eine Sammlung von Fähigkeiten, die auf irgendeine Weise miteinander verbunden sind.
Erste Schritte mit NestJS
1. Installation
Lassen Sie uns NestJS installieren und ein Projekt damit erstellen, indem Sie diesen Schritten folgen:
Als Ergebnis wird folgende Verzeichnisstruktur erstellt:
2. Controller
Die Bausteine des Nestes sind Controller. Dies sind die Orte, an denen eingehende Anfragen bearbeitet werden. Sie können den Routenpfad mithilfe von HTTP-Methodenmodifikatoren (Get, Post, Put, Delete usw.)-Decorators angeben, wie im folgenden Code zu sehen ist.
Nestjs verwendet den Decorator-Ansatz und wird hauptsächlich in Typescript entwickelt, obwohl es auch JavaScript unterstützt. Sie können auch einen Klassenvalidierer verwenden, um den Anforderungstext zu validieren.
Ich werde nur eine Nestjs-Serverinstanz erstellen und ValidationPipe global hinzufügen. Pipes sind nur Methoden, die vor Controllern ausgeführt werden. Pipes können auch auf Methoden-/Argumentebene mit dem @UsePipes-Dekorator angewendet werden.
3. Anbieter
Anbieter sind eine weitere wichtige Komponente von Nestjs. Bei weitem habe ich Daten in einer temporären Variablen gespeichert. Aus diesem Grund kann eine so einfache Aufgabe mit Controller-Handlern ausgeführt werden.
Für eine größere, kompliziertere Logik wäre die Codetrennung und -wiederverwendung jedoch schwierig. Hier kommen Anbieter ins Spiel. Sie können einen Anbieter über einer Klasse deklarieren/erstellen, indem Sie den @Injectable-Dekorator verwenden. Anschließend können Sie mithilfe von Anbietern Abhängigkeitsinjektion, Protokollierung und andere Aufgaben ausführen.
4 Module
Nestjs-Module sind nicht global; stattdessen haben sie Tiefe.
Es kann jedoch auch mit anderen Modulen geteilt werden. Obwohl es, wie Angular, globale Module anbietet, ist es ratsamer, Dienste/Controller in dem Modul zu belassen, in dem sie in Nestjs am häufigsten verwendet werden.
Die NestCLI wird meistens zum Erstellen von Modulen verwendet, und Anbieter/Controller, die im Kontext dieses Moduls generiert werden, werden automatisch von der CLI hinzugefügt. Diese werden als Feature-Module bezeichnet.
5. Ausnahmefilter
Ausnahmefilter sind Fehlerhandler, die aufgerufen werden, wenn ein Controller eine Ausnahme auslöst. Es verwaltet das Problem automatisch und liefert eine entsprechende, benutzerfreundliche Fehlermeldung.
Viele von HttpException geerbte Ausnahmen werden vom Paket @nestjs/common bereitgestellt, darunter NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException und viele andere. Sie können sogar Ihren eigenen ExceptionFilter entwerfen.
6. Middleware
Eine Funktion, die vor dem Route-Handler aufgerufen wird, wird als Middleware bezeichnet. Die Request- und Response-Objekte sowie die next()-Middleware-Funktion im Request-Response-Zyklus der Anwendung sind für Middleware-Funktionen zugänglich.
Eine Variable namens next wird typischerweise verwendet, um die nächste Middleware-Funktion zu identifizieren. Benutzerdefinierte Nest-Middleware kann mithilfe des @Injectable()-Dekorators in einer Methode oder Klasse implementiert werden.
7. Wachen
Wachen sind nur für eine Sache verantwortlich. Es liegt in ihrer Verantwortung zu beurteilen, ob eine Anfrage vom Verantwortlichen auf der Grundlage bestimmter Umstände (insbesondere benutzerdefinierter Logik) verarbeitet wird oder nicht.
Es ist hilfreich für die Authentifizierung/Autorisierung und ist die empfohlene Methode in Nestjs.
Obwohl Authentifizierung/Berechtigungen usw. mithilfe von Middleware durchgeführt werden können, erfolgt dies nicht auf Express- oder anderen HTTP-Servern, da sie keinen verwandten starken Kontext haben und keinen Grund haben, zu wissen, welche Methode zur Verarbeitung der Anforderung verwendet wird.
Vorteile
- Das Framework ist stark auf Anmerkungen angewiesen, die verwendet werden, um alles von Endpunkten bis hin zur Swagger-Dokumentation zu erstellen. Die Endpunkte sind einfach und aufgeräumt, und die Anmerkungen erleichtern die Entwicklung im Allgemeinen.
- Da Nest.js ein modulbasiertes Framework ist, ist es einfach, Allzweckmodule zu externalisieren und Code in vielen Projekten wiederzuverwenden.
- Die Ordnerstruktur von Nest.js wird maßgeblich von Angular beeinflusst. Beim Entwerfen eines Nest-Dienstes ermöglicht dies minimale Ausfallzeiten.
- Komponenten haben ihre eigenen Verzeichnisse, wobei das Stammverzeichnis das Anwendungsmodul und die Hauptdatei enthält. Aufgrund der Einfachheit der Struktur kann dem Design von Endpunkten und ihren Kunden mehr Aufmerksamkeit geschenkt werden als der Struktur der Anwendung.
- Nest bietet wie Angular ein nettes Befehlszeilentool, Nestjs/cli, das über den Node Package Manager verfügbar ist.
Nachteile
- Nest hat einen Vorteil in Bezug auf die Verwendung von TypeScript und die Angular-Integration, aber es fehlt die finanzielle Unterstützung eines großen Unternehmens.
- Der Mangel an Dokumentation stellt die größte Bedrohung für Nest-Benutzer dar. Obwohl das Framework hervorragend mit anderen Frameworks interagiert, ist die Dokumentation spärlich und spricht keine potenziellen Schwierigkeiten an.
- Nest hat einen Vorteil in Bezug auf die Verwendung von TypeScript und Angular.
Zusammenfassung
NestJS bietet Entwicklern einen enormen Vorteil. Um mit der Entwicklung zu beginnen, müssen Sie lediglich Folgendes tun Erstelle eine neue App und du bist gut zu gehen. Dieses Framework gibt Ihnen sofort einen deutlichen Schub und hilft Ihnen auch, weitere Schritte durch die Etablierung einer geeigneten App-Architektur zu gehen.
Es nutzt modernste Methoden und Technologien, um Anwendungen zu erstellen, die sowohl überschaubar als auch langlebig sind. Es kann verwendet werden, um eine Verbindung zu GraphQL und WebSockets herzustellen und Microservices zu erstellen.
Hinterlassen Sie uns einen Kommentar