Heim Web-Frontend js-Tutorial Middleware in Express.js mit Node.js verstehen – Teil 9

Middleware in Express.js mit Node.js verstehen – Teil 9

Sep 21, 2024 am 06:29 AM

Understanding Middleware in Express.js with Node.js - Part 9

Middleware in Express.js verstehen: Der einfache Weg

Middleware in Express.js klingt vielleicht etwas technisch, aber wenn man erst einmal den Dreh raus hat, ist es ziemlich einfach. Es ist wie ein Boxenstopp in einem Rennen – Anfragen gehen ein, und bevor sie die Ziellinie (Ihren Routenbearbeiter) erreichen, machen sie einige Stopps an verschiedenen Punkten, um geändert, überprüft oder einfach nur protokolliert zu werden.

In diesem Artikel erläutern wir, was Middleware ist, wie man sie verwendet, und zeigen Ihnen einige Beispiele aus der Praxis. Machen wir es so einfach und praktisch wie möglich!


Was genau ist Middleware?

Stellen Sie sich vor, dass jede Anfrage an Ihren Server ein Auto auf einer Autofahrt ist. Middleware ist wie eine Reihe von Kontrollpunkten, die jedes Auto passieren muss, bevor es sein Ziel erreicht. An jedem Kontrollpunkt (Middleware) passiert etwas: Vielleicht wird das Auto gewaschen, vielleicht holt es ein paar Snacks ab, oder vielleicht wird ihm gesagt, dass es umdrehen und nach Hause fahren soll!

In Bezug auf die Codierung ist Middleware lediglich eine Funktion, die zwischen der Anfrage und der Antwort liegt. Es kann:

  • Führen Sie etwas Code aus.
  • Ändern Sie die Anfrage oder Antwort.
  • Verhindern Sie, dass die Anfrage weitergeht.
  • Geben Sie es an die nächste Middleware weiter.

Hier ist ein super einfaches Beispiel:

app.use((req, res, next) => {
  console.log('A request came in!');
  next(); // Pass the baton to the next middleware
});
Nach dem Login kopieren

Jedes Mal, wenn eine Anfrage Ihren Server erreicht, protokolliert er eine Nachricht und übergibt dann die Kontrolle an die nächste Middleware oder den nächsten Routenhandler.


Integrierte Middleware: Die sofort einsatzbereiten Tools von Express

Express verfügt über einige integrierte Middleware-Funktionen, die das Leben einfacher machen. Hier sind ein paar, die Sie wahrscheinlich ständig verwenden werden:

1- express.json(): Dieser hilft Ihnen beim Umgang mit eingehenden JSON-Daten.

app.use(express.json());
Nach dem Login kopieren

2- express.static(): Möchten Sie statische Dateien wie Bilder oder CSS bereitstellen? Diese Middleware ist genau das Richtige für Sie.

app.use(express.static('public'));
Nach dem Login kopieren

3- express.urlencoded(): Es hilft, über HTML-Formulare gesendete Daten zu analysieren.

app.use(express.urlencoded({ extended: true }));
Nach dem Login kopieren

Benutzerdefinierte Middleware: Erstellen Sie Ihre eigene

Sie können auch Ihre eigene Middleware erstellen, um bestimmte Aufgaben wie die Protokollierung oder die Überprüfung, ob ein Benutzer angemeldet ist, zu erledigen.

Beispiel: Einfacher Logger

app.use((req, res, next) => {
  console.log(`Request Method: ${req.method}, URL: ${req.url}`);
  next();
});
Nach dem Login kopieren

Dadurch werden die HTTP-Methode und die URL jedes Mal protokolliert, wenn eine Anfrage Ihren Server erreicht. Es eignet sich hervorragend, um zu verfolgen, was mit Ihrer App passiert.

Beispiel: Authentifizierungsprüfung

const checkAuth = (req, res, next) => {
  if (!req.headers.authorization) {
    return res.status(403).send('You shall not pass! (Unauthorized)');
  }
  next(); // Allow the request to continue if authorized
};

app.use(checkAuth);
Nach dem Login kopieren

Wenn eine Anfrage hier keinen Autorisierungsheader hat, wird sie mit der Meldung „403 Forbidden“ blockiert. Andernfalls wird es weitergegeben.


Verwendung von Middleware von Drittanbietern

Sie haben keine Lust, alles selbst zu schreiben? Gute Nachrichten: Express funktioniert mit einer Vielzahl von Middleware von Drittanbietern, die Aufgaben für Sie erledigen können.

Beispiel: Morgan für Logging

Morgan ist eine beliebte Middleware zum Protokollieren von Anfragen. Um es zu verwenden:

1- Installieren Sie es:

npm install morgan
Nach dem Login kopieren

2- Fügen Sie es Ihrer App hinzu:

const morgan = require('morgan');
app.use(morgan('dev'));
Nach dem Login kopieren

Jetzt erhalten Sie jedes Mal, wenn eine Anfrage eingeht, ein schönes, formatiertes Protokoll in Ihrem Terminal.

Beispiel: cors für Cross-Origin-Anfragen

Cors-Middleware ermöglicht Ihrer App, Anfragen von anderen Domänen zu verarbeiten (sehr nützlich beim Erstellen von APIs).

1- Installieren Sie es:

npm install cors
Nach dem Login kopieren

2- Benutzen Sie es:

const cors = require('cors');
app.use(cors());
Nach dem Login kopieren

Das ist es! Jetzt kann Ihre App ursprungsübergreifende Anfragen verarbeiten, ohne ins Schwitzen zu geraten.


Middleware für bestimmte Routen

Sie müssen nicht immer Middleware auf jede Route in Ihrer App anwenden. Manchmal möchten Sie, dass es nur auf bestimmten Geräten läuft.

app.get('/dashboard', checkAuth, (req, res) => {
  res.send('Welcome to the Dashboard');
});
Nach dem Login kopieren

Hier wird die checkAuth-Middleware nur ausgeführt, wenn jemand versucht, auf die /dashboard-Route zuzugreifen. Wenn sie nicht autorisiert sind, kommen sie nicht rein!


Umgang mit Fehlern mit Middleware

Manchmal geht etwas schief. Hier bietet sich Middleware zur Fehlerbehandlung an. Es sieht etwas anders aus – es benötigt vier Argumente: err, req, res und next.

app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Something went wrong!');
});
Nach dem Login kopieren

Diese Middleware fängt Fehler ab und sendet eine freundliche „500 Internal Server Error“-Nachricht zurück.


Zusammenfassung

Middleware ist wie das Schweizer Taschenmesser von Express.js. Es hilft Ihnen, Anfragen zu verwalten, Fehler zu behandeln und coole Funktionen wie Protokollierung oder Authentifizierung hinzuzufügen. Unabhängig davon, ob Sie die integrierten Optionen verwenden, eigene Optionen schreiben oder Tools von Drittanbietern nutzen, sorgt Middleware dafür, dass Ihre App modular und verwaltbar bleibt.

Vielen Dank fürs Lesen und viel Spaß beim Programmieren! ?

Das obige ist der detaillierte Inhalt vonMiddleware in Express.js mit Node.js verstehen – Teil 9. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1653
14
PHP-Tutorial
1251
29
C#-Tutorial
1224
24
Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Apr 10, 2025 am 09:33 AM

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? Apr 04, 2025 pm 02:06 PM

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...

See all articles