Kursinhalt
Backend-Entwicklung mit Node.js und Express.js
Backend-Entwicklung mit Node.js und Express.js
Benutzerdefinierte Middleware
In Express.js können wir benutzerdefinierte Middleware-Funktionen mit der Methode app.use()
erstellen. Diese Funktionen nehmen drei Parameter entgegen: req
(das Anforderungsobjekt), res
(das Antwortobjekt) und next
(eine Funktion, um die Kontrolle an die nächste Middleware in der Kette zu übergeben). Benutzerdefinierte Middleware kann global auf alle Routen oder auf spezifische Routen angewendet werden, indem ein Routenpfad angegeben wird.
Erstellen von benutzerdefinierter Middleware
Hier ist ein einfaches Beispiel für eine benutzerdefinierte Middleware-Funktion, die den Zeitstempel und die URL jeder eingehenden Anfrage protokolliert:
In diesem Beispiel protokolliert die benutzerdefinierte Middleware den Zeitstempel und die URL jeder eingehenden Anfrage in der Konsole. Die Funktion next()
wird aufgerufen, um die Kontrolle an die nächste Middleware in der Pipeline zu übergeben.
Praxisbeispiel: Kombination von eingebauter und benutzerdefinierter Middleware
Hier ist ein praktisches Beispiel, bei dem wir eine eingebaute Express-Middleware verwenden, um JSON-Daten zu parsen, und dann eine benutzerdefinierte Middleware erstellen, um diese Daten vor der Weiterverarbeitung zu validieren:
In diesem Beispiel:
- Wir verwenden die eingebaute Middleware
express.json()
, um eingehende JSON-Daten zu parsen; - Wir erstellen eine benutzerdefinierte Middleware, die überprüft, ob die geparsten JSON-Daten fehlen oder leer sind. Wenn dies der Fall ist, sendet sie eine 400 Bad Request-Antwort mit einer Fehlermeldung. Wenn die Daten gültig sind, ruft sie
next()
auf, um zur Route fortzufahren; - Die
/api/data
-Route erwartet gültige JSON-Daten. Wenn die benutzerdefinierte Middleware die Daten validiert, empfängt der Routen-Handler sie und sendet eine Erfolgsantwort.
Dieses Beispiel zeigt, wie wir sowohl eingebaute als auch benutzerdefinierte Middleware verwenden können, um Daten zu validieren, bevor sie unsere Routen-Handler erreichen, und sicherzustellen, dass die Daten im erwarteten Format vorliegen, bevor sie weiterverarbeitet werden.
Danke für Ihr Feedback!