Node.js: Von ExpressJS 3 zu ExpressJS 4. Die Neuerungen

ExpressJS ist ein umfangreiches Framework zur Erstellung von Web-Apps mit NodeJS. Dabei spielt es keine Rolle ob Single-, Multi-Page oder hybrider Web-App.

Mittlerweile ist von diesem Framework die 4. Version erschienen, die einige grundlegende Änderungen mit sich bringt. In diesem Beitrag sollen die wichtigsten kurz vorgestellt werden.

Kein Connect!

Version 3 benötigte als Installationsabhängigkeit das Middleware Framework Connect, welches zahlreiche Tools zur Server-Konfiguration bereitstellt.

Die wohl bekanntesten davon sind:

  • bodyParser – Request-Body-Parser, um elegant auf den Request-Body zu zugreifen (req.body.KEY)
  • json – Erweiterung, um routiniert auf Request-Bodies im JSON Format zu zugreifen
  • urlencoded – Erweiterung um auf Request-Bodies im x-ww-form-urlencoded Format zu zugreifen
  • methodOverride – Unterstützung für PUT und Delete Requests
  • static – stellt Dateiserver für statische Dateien bereit

In ExpressJS 4.x fehlt Connect, sodass die einzelnen Erweiterungen nachinstalliert werden müssen, um sie zu verwenden.
Eine Liste dazu befindet sich auf der Connect Github Seite.
Die static Middleware stellt dabei eine Ausnahme da und kann wie bisher einfach so verwendet werden.

Kein app.configure!

War es in V3 noch möglich mehrere Server-Konfiguration einfach zu konfigurieren, beispielsweise für die Entwicklung oder den produktiven Einsatz, müssen diese nun über einfache “IF”-Anweisungen abgefangen und mit Hilfe von Umgebungsvariablen definiert werden.

Vorher:

Nachher:

Kein app.router!

Anstatt wie bisher eine Möglichkeit zu haben, die Routing Middleware von ExpressJS vor oder nach anderer Middleware einzubinden, entfällt diese nun. Jetzt gilt “Wer zuerst kommt, mahlt zu erst”!

Im Zuge dessen ist es nun möglich bzw. sogar notwendig, dass app.use auch mit Parametern umgehen kann.

Parameter für app.use!

Wie im vorherigen Abschnitt beschrieben, ist es notwendig, dass eine Middleware auch mit Parametern  umgehen kann.

Kein express.createServer()!

Lange schon als veraltet markiert, ist es nun nicht mehr möglich eine ExpressApp über:

anzulegen.
Es funktioniert nun nur noch folgerndermaßen:

req.params als Object anstatt Array!

Die Request-Parameter stehen in einer ExpressApp auf req.params.
Mit Version 4 ist req.params nun ein Object und kein Array mehr. Das wird jedoch nur dann interessant, wenn in der App reguläre Ausdrücke in den Routes benutzt werden.

Falls in solchen Fällen die req.params[xx] Schreibweise benutzt wurde, sollte die App wie gewohnt funktionieren.

NEU app.route() und Router()!

Über diese neue Funktion lassen sich Routes schön modular in eigene Dateien bzw. Sub-Apps aufsplitten.

Ein Beispiel:

Zusätzlich können auch noch eigene Middlewares route-spezifisch eingebunden werden oder eigene Router erzeugt und wieder als Middleware benutzt werden.

Die API Dokumentation für die Verwendung von Router ist in der Express API-Referenz einsehbar.

Wir freuen uns über eine Bewertung, um ein Feedback zu erhalten:

Durchschnittlich 4.8 Sterne aus 6 Meinungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.