Sebastian Springer MaibornWolff

„Nest verfolgt einen ähnlichen Ansatz wie schon Express, indem es keine Komplettlösung für die Umsetzung von Webapplikationen bietet, sondern einen modularen Ansatz verfolgt.“

Das von Angular inspirierte Nest ist ein noch relativ junges Framework für Node.js, mit dem skalierbare, serverseitige Anwendungen erstellt werden können. Unter der Haube verwendet Nest Express, bietet aber auch Kompatibilität mit einer Vielzahl anderer Bibliotheken. Das ermöglicht die einfache Verwendung von unzähligen Plug-ins von Drittanbietern, die verfügbar sind.

Wollen Sie eine Webapplikation mit Node.js umsetzen, führt kaum ein Weg an Express vorbei. Das führende Web-Application-Framework für Node.js erweitert das HTTP-Modul von Node.js um einige hilfreiche Features und nimmt Ihnen so einiges an Arbeit ab. Außerdem stellt Express mit seiner Middleware-Schnittstelle eine Möglichkeit zur Verfügung, über die Sie Erweiterungen in Ihre Applikation einbinden können. Mittlerweile ist Express jedoch in die Jahre gekommen und die Entwicklung des Frameworks hat an Schwung verloren. Einer der Hauptkritikpunkte ist, dass Express in der aktuellen Version 4 das native HTTP2-Modul von Node.js nicht unterstützt und Sie stattdessen auf ein zusätzliches NPM-Modul zurückgreifen müssen. Auch beim Einsatz moderner Design- und Architekturmuster wirkt Express zunehmend angestaubt, vor allem, wenn Sie die weit verbreiteten Frontend-Frameworks wie Angular, React oder Vue zum Vergleich heranziehen. Mit dieser Diskrepanz zwischen Backend und Frontend im Blick wurde Nest ins Leben gerufen. Dieses Framework bringt die modernen Entwicklungsparadigmen des Frontends in die Node.js-Welt. Zugleich nimmt Ihnen das Framework jede Menge Arbeit ab und lässt eine Applikation ähnlich strukturieren, wie Sie es beispielsweise von Angular gewohnt sind. In diesem Artikel erfahren Sie, wie Sie ein voll funktionsfähiges Backend für eine Single-Page-Applikation auf Basis von Nest implementieren können und wie sich mit diesem Framework gängige Problemstellungen schnell und einfach lösen lassen.

Die Idee hinter Nest

Nest verfolgt einen ähnlichen Ansatz wie schon Express, indem es keine Komplettlösung für die Umsetzung von Webapplikationen bietet, sondern einen modularen Ansatz verfolgt. Nest nutzt existierende Frameworks als Basis und erweitert diese. So kommt für die grundsätzliche Behandlung von Request und Response beispielsweise Express zum Einsatz. Die Schnittstelle ist allerdings so abstrahiert, dass Express auch gegen andere Frameworks ausgetauscht werden kann. Im Laufe dieses Artikels erfahren Sie, wie Sie mit Fastify eine Alternative zu Express in Ihre Applikation integrieren können.

Nest geht außerdem einen Schritt, der momentan sehr populär in der JavaScript-Welt ist, und nutzt TypeScript für die Entwicklung. Zwar ist es möglich, auch mit nativem JavaScript zu arbeiten, jedoch wird TypeScript empfohlen. Wo Sie in einer Express-Applikation gerade für die Routenkonfiguration einigen zusätzlichen Code schreiben mussten, nutzt Nest einen anderen Ansatz und geht von TypeScript-Klassen aus, die durch Decorators um Metainformationen ergänzt werden. Ein weiteres, auch aus dem Frontend bekanntes Muster, das in Nest häufig Anwendung findet, ist die Dependency Injection, mit der die einzelnen Bestandteile einer Applikation entkoppelt werden und eine bessere Testbarkeit erreicht wird.

Auch beim Set-up einer Applikation schlägt Nest einen bereits seit längerer Zeit im Frontend etablierten Weg ein und bietet Ihnen eine Hilfestellung bei der Initialisierung einer Applikation.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 1.19 - "Symfony: Die neue Messenger-Komponente"

Alle Infos zum Heft
579859341Das Framework Nest für moderne Webapplikationen mit Node.js
X
- Gib Deinen Standort ein -
- or -