Middleware w Express.js: Obsługa wniosku pośredniego

Wprowadzenie do Middleware w Express.js

Middleware in Express.js to potężna koncepcja, która umożliwia wykonywanie funkcji w określonej kolejności podczas cyklu życia żądanie-odpowiedź. Te funkcje mogą wykonywać różne zadania, takie jak uwierzytelnianie, rejestrowanie, sprawdzanie poprawności danych i inne. Middleware Funkcje są wykonywane sekwencyjnie, a każda z nich middleware ma dostęp do obiektów request i response, jak również do next funkcji, która przekazuje kontrolę do następnej middleware na stosie.

Dlaczego używać Middleware ?

Middleware jest niezbędny do modularyzacji funkcjonalności aplikacji i zwiększenia jej łatwości konserwacji. Pozwala utrzymać procedury obsługi tras w czystości i skupić się na określonych zadaniach, jednocześnie przenosząc typowe lub przekrojowe problemy na middleware funkcje. To oddzielenie problemów sprzyja ponownemu użyciu kodu i sprawia, że ​​baza kodu jest lepiej zorganizowana.

Tworzenie i używanie Middleware

Aby utworzyć middleware w Express.js, zdefiniuj funkcję, która przyjmuje trzy parametry: request, response, i next.

Oto podstawowy przykład middleware rejestrowania każdego przychodzącego żądania:

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);  

Możesz użyć tej app.use() metody, aby zastosować ją middleware globalnie do wszystkich tras lub użyć jej wybiórczo dla określonych tras.

Nakaz Middleware wykonania

Middleware funkcje są wykonywane w kolejności, w jakiej zostały zdefiniowane przy użyciu app.use().

Na przykład:

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

W takim przypadku middleware1 zostanie wykonany wcześniej middleware2 dla wszystkich żądań przychodzących.

Obsługa błędów w Middleware

Jeśli w funkcji wystąpi błąd middleware, możesz przekazać błąd do next funkcji, a Express.js nastąpi automatyczne przejście do obsługi błędów middleware.

Oto przykład:

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

Używanie Middleware do uwierzytelniania

Middleware jest powszechnie używany do implementacji uwierzytelniania i autoryzacji w aplikacjach internetowych. Na przykład możesz utworzyć middleware funkcję, która sprawdza, czy użytkownik jest uwierzytelniony przed zezwoleniem na dostęp do określonych tras:

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!');  
});  

 

Wniosek

Middleware in Express.js jest niezbędnym narzędziem do zarządzania aplikacjami internetowymi i zwiększania ich funkcjonalności. Tworząc middleware funkcje wielokrotnego użytku, możesz usprawnić swój kod, modularyzować problemy i poprawić ogólną łatwość konserwacji swoich projektów. Od obsługi uwierzytelniania po rejestrowanie i zarządzanie błędami — middleware umożliwia wydajne tworzenie solidnych i bezpiecznych aplikacji internetowych.