Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Erstellen und Verwalten von Routen in Express.js | Entwicklung von Webanwendungen mit Express.js
Backend-Entwicklung mit Node.js und Express.js

bookErstellen und Verwalten von Routen in Express.js

Im Folgenden werden diese praxisnahen Beispiele zur Erstellung von Routen in Express.js ausführlicher betrachtet.

🌟 Grundlegende Routen

Erstellung einer einfachen Express.js-Anwendung mit Routen für verschiedene HTTP-Methoden. Jede Route verarbeitet eine bestimmte HTTP-Anfrage und sendet eine Antwort an den Client zurück.

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('This is the homepage.');
});

app.post('/users', (req, res) => {
  // Handle user creation logic here.
  res.send('User created.');
});

app.put('/users/:id', (req, res) => {
  // Handle user update logic here.
  res.send(`User ${req.params.id} updated.`);
});

app.delete('/users/:id', (req, res) => {
  // Handle user deletion logic here.
  res.send(`User ${req.params.id} deleted.`);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000.');
});
  • GET-Route: Diese Route antwortet auf eine GET-Anfrage an die Root-URL (/). Nutzer, die die Startseite der Anwendung aufrufen, erhalten die Nachricht "This is the homepage.";
  • POST-Route: Diese Route antwortet auf eine POST-Anfrage an die URL /users. Sie wird typischerweise zur Erstellung neuer Benutzer-Datensätze verwendet. Die Route enthält einen Kommentar für die Implementierung der Benutzererstellung, der durch die eigentliche Logik ersetzt werden kann;
  • PUT-Route: Diese Route antwortet auf eine PUT-Anfrage an die URL /users/:id. Sie ist für das Aktualisieren von Benutzer-Datensätzen anhand des :id-Parameters vorgesehen. Wie die POST-Route enthält sie einen Kommentar für die Aktualisierungslogik;
  • DELETE-Route: Diese Route antwortet auf eine DELETE-Anfrage an die URL /users/:id. Sie dient zum Löschen von Benutzer-Datensätzen anhand des :id-Parameters. Wie bei den anderen Routen ist ein Kommentar für die Löschlogik enthalten.

Hinweis

Falls Unsicherheit bezüglich der URL besteht oder das Konzept überprüft werden soll, bitte den folgenden Artikel konsultieren: URL vs URI vs URN

🌟 Umgang mit URL-Parametern

Fokus auf die Erstellung einer Route, die URL-Parameter verarbeitet. URL-Parameter sind dynamische Teile einer URL, die zur Datenübertragung an den Server verwendet werden können. Funktionsweise des folgenden Beispiels:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});
  • Definition einer Route mit app.get('/users/:id', ...), wobei :id ein URL-Parameter ist. Beim Zugriff auf eine URL wie /users/123 enthält die Variable req.params.id den Wert 123;
  • Zugriff auf den Parameter :id innerhalb des Routings mit req.params.id;
  • Der Kommentar kann durch Logik ersetzt werden, um Benutzerdaten basierend auf der aus dem URL-Parameter erhaltenen userId abzurufen;
  • Abschließend erfolgt eine Antwort an den Client mit Informationen über den durch den Parameter :id identifizierten Benutzer.

🌟 Routenreihenfolge und Priorisierung

Die Reihenfolge, in der Routen definiert werden, ist entscheidend, da Express eine First-Match-Wins-Strategie verwendet. Die erste passende Route wird ausgeführt. In diesem Beispiel betrachten wir ein Szenario, in dem sowohl eine spezifische als auch eine Catch-All-Route vorhanden ist:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});

app.get('/users/*', (req, res) => {
  // Handle generic user-related requests.
  res.send('User-related request.');
});
  • Die erste Route, app.get('/users/:id', ...), ist eine spezifische Route, die auf URLs wie /users/123 reagiert. Sie verarbeitet Anfragen mit einer bestimmten Benutzer-ID;
  • Die zweite Route, app.get('/users/*', ...), ist eine Catch-All-Route für generische benutzerbezogene Anfragen. Sie verwendet ein Wildcard (*), um jede URL zu erfassen, die mit /users/ beginnt, wie zum Beispiel /users/settings.

In diesem Szenario ist die Reihenfolge entscheidend. Die spezifische Route sollte vor der Catch-All-Route definiert werden, damit sie Vorrang hat. Wenn die Catch-All-Route zuerst definiert wird, erfasst sie alle URLs, die mit /users/ beginnen, und die spezifische Route hat keine Möglichkeit, Anfragen mit einer Benutzer-ID zu verarbeiten.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain more about how route order affects request handling in Express.js?

What happens if I reverse the order of the specific and catch-all routes?

Can you give more examples of using URL parameters in routes?

Awesome!

Completion rate improved to 2.56

bookErstellen und Verwalten von Routen in Express.js

Swipe um das Menü anzuzeigen

Im Folgenden werden diese praxisnahen Beispiele zur Erstellung von Routen in Express.js ausführlicher betrachtet.

🌟 Grundlegende Routen

Erstellung einer einfachen Express.js-Anwendung mit Routen für verschiedene HTTP-Methoden. Jede Route verarbeitet eine bestimmte HTTP-Anfrage und sendet eine Antwort an den Client zurück.

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('This is the homepage.');
});

app.post('/users', (req, res) => {
  // Handle user creation logic here.
  res.send('User created.');
});

app.put('/users/:id', (req, res) => {
  // Handle user update logic here.
  res.send(`User ${req.params.id} updated.`);
});

app.delete('/users/:id', (req, res) => {
  // Handle user deletion logic here.
  res.send(`User ${req.params.id} deleted.`);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000.');
});
  • GET-Route: Diese Route antwortet auf eine GET-Anfrage an die Root-URL (/). Nutzer, die die Startseite der Anwendung aufrufen, erhalten die Nachricht "This is the homepage.";
  • POST-Route: Diese Route antwortet auf eine POST-Anfrage an die URL /users. Sie wird typischerweise zur Erstellung neuer Benutzer-Datensätze verwendet. Die Route enthält einen Kommentar für die Implementierung der Benutzererstellung, der durch die eigentliche Logik ersetzt werden kann;
  • PUT-Route: Diese Route antwortet auf eine PUT-Anfrage an die URL /users/:id. Sie ist für das Aktualisieren von Benutzer-Datensätzen anhand des :id-Parameters vorgesehen. Wie die POST-Route enthält sie einen Kommentar für die Aktualisierungslogik;
  • DELETE-Route: Diese Route antwortet auf eine DELETE-Anfrage an die URL /users/:id. Sie dient zum Löschen von Benutzer-Datensätzen anhand des :id-Parameters. Wie bei den anderen Routen ist ein Kommentar für die Löschlogik enthalten.

Hinweis

Falls Unsicherheit bezüglich der URL besteht oder das Konzept überprüft werden soll, bitte den folgenden Artikel konsultieren: URL vs URI vs URN

🌟 Umgang mit URL-Parametern

Fokus auf die Erstellung einer Route, die URL-Parameter verarbeitet. URL-Parameter sind dynamische Teile einer URL, die zur Datenübertragung an den Server verwendet werden können. Funktionsweise des folgenden Beispiels:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});
  • Definition einer Route mit app.get('/users/:id', ...), wobei :id ein URL-Parameter ist. Beim Zugriff auf eine URL wie /users/123 enthält die Variable req.params.id den Wert 123;
  • Zugriff auf den Parameter :id innerhalb des Routings mit req.params.id;
  • Der Kommentar kann durch Logik ersetzt werden, um Benutzerdaten basierend auf der aus dem URL-Parameter erhaltenen userId abzurufen;
  • Abschließend erfolgt eine Antwort an den Client mit Informationen über den durch den Parameter :id identifizierten Benutzer.

🌟 Routenreihenfolge und Priorisierung

Die Reihenfolge, in der Routen definiert werden, ist entscheidend, da Express eine First-Match-Wins-Strategie verwendet. Die erste passende Route wird ausgeführt. In diesem Beispiel betrachten wir ein Szenario, in dem sowohl eine spezifische als auch eine Catch-All-Route vorhanden ist:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});

app.get('/users/*', (req, res) => {
  // Handle generic user-related requests.
  res.send('User-related request.');
});
  • Die erste Route, app.get('/users/:id', ...), ist eine spezifische Route, die auf URLs wie /users/123 reagiert. Sie verarbeitet Anfragen mit einer bestimmten Benutzer-ID;
  • Die zweite Route, app.get('/users/*', ...), ist eine Catch-All-Route für generische benutzerbezogene Anfragen. Sie verwendet ein Wildcard (*), um jede URL zu erfassen, die mit /users/ beginnt, wie zum Beispiel /users/settings.

In diesem Szenario ist die Reihenfolge entscheidend. Die spezifische Route sollte vor der Catch-All-Route definiert werden, damit sie Vorrang hat. Wenn die Catch-All-Route zuerst definiert wird, erfasst sie alle URLs, die mit /users/ beginnen, und die spezifische Route hat keine Möglichkeit, Anfragen mit einer Benutzer-ID zu verarbeiten.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
some-alt