Middleware in Express.js: Umgang mit Zwischenanforderungen

Einführung Middleware in Express.js

Middleware in Express.js ist ein leistungsstarkes Konzept, das es Ihnen ermöglicht, Funktionen in einer bestimmten Reihenfolge während des Anfrage-Antwort-Lebenszyklus auszuführen. Diese Funktionen können verschiedene Aufgaben wie Authentifizierung, Protokollierung, Datenvalidierung und mehr ausführen. Middleware Funktionen werden nacheinander ausgeführt und jede middleware hat Zugriff auf die request und- response Objekte sowie auf die next Funktion, die die Kontrolle an die nächste middleware im Stapel übergibt.

Warum verwenden Middleware ?

Middleware ist für die Modularisierung der Funktionalität Ihrer Anwendung und die Verbesserung ihrer Wartbarkeit von entscheidender Bedeutung. Es ermöglicht Ihnen, Ihre Routenbearbeiter sauber zu halten und sich auf bestimmte Aufgaben zu konzentrieren, während allgemeine oder übergreifende Probleme auf middleware Funktionen verlagert werden. Diese Trennung von Belangen fördert die Wiederverwendbarkeit des Codes und sorgt für eine bessere Organisation Ihrer Codebasis.

Erstellen und Verwenden Middleware

Um middleware in zu erstellen Express.js, definieren Sie eine Funktion, die drei Parameter akzeptiert: request, response und next.

Hier ist ein einfaches Beispiel dafür, middleware wie jede eingehende Anfrage protokolliert wird:

const logMiddleware =(req, res, next) => {  
  console.log(`Received a ${req.method} request at ${req.url}`);  
  next(); // Pass control to the next middleware  
};  
  
app.use(logMiddleware);  

Sie können die app.use() Methode middleware global auf alle Routen anwenden oder sie selektiv für bestimmte Routen verwenden.

Ausführungsreihenfolge Middleware _

Middleware Funktionen werden in der Reihenfolge ausgeführt, in der sie mit definiert wurden app.use().

Zum Beispiel:

app.use(middleware1);  
app.use(middleware2);  

In diesem Fall middleware1 wird es middleware2 bei allen eingehenden Anfragen vorher ausgeführt.

Umgang mit Fehlern in Middleware

Wenn innerhalb einer middleware Funktion ein Fehler auftritt, können Sie den Fehler an die Funktion übergeben next und Express.js gelangen automatisch zur Fehlerbehandlung middleware.

Hier ist ein Beispiel:

const errorMiddleware =(err, req, res, next) => {  
  console.error(err);  
  res.status(500).send('Something went wrong!');  
};  
  
app.use(errorMiddleware);  

Middleware Zur Authentifizierung verwenden

Middleware wird häufig zur Implementierung von Authentifizierung und Autorisierung in Webanwendungen verwendet. Sie können beispielsweise eine middleware Funktion erstellen, die prüft, ob ein Benutzer authentifiziert ist, bevor der Zugriff auf bestimmte Routen zugelassen wird:

const authenticateMiddleware =(req, res, next) => {  
  if(req.isAuthenticated()) {  
    return next(); // User is authenticated, proceed to the next middleware  
  }  
  res.redirect('/login'); // User is not authenticated, redirect to login page  
};  
  
app.get('/profile', authenticateMiddleware,(req, res) => {  
  res.send('Welcome to your profile!');  
});  

 

Abschluss

Middleware in Express.js ist ein wichtiges Tool zur Verwaltung und Verbesserung der Funktionalität Ihrer Webanwendungen. Durch die Erstellung wiederverwendbarer middleware Funktionen können Sie Ihren Code rationalisieren, Bedenken modularisieren und die allgemeine Wartbarkeit Ihrer Projekte verbessern. Von der Authentifizierung bis zur Protokollierung und Fehlerverwaltung middleware können Sie robuste und sichere Webanwendungen effizient erstellen.