Middleware u Express.js: Rukovanje međuzahtjevom

Uvod u Middleware in Express.js

Middleware in Express.js je moćan koncept koji vam omogućuje izvršavanje funkcija određenim redoslijedom tijekom životnog ciklusa zahtjev-odgovor. Ove funkcije mogu obavljati različite zadatke kao što su provjera autentičnosti, bilježenje, provjera valjanosti podataka i još mnogo toga. Middleware funkcije se izvršavaju sekvencijalno, a svaka middleware ima pristup objektima request i response, kao i next funkciji, koja predaje kontrolu sljedećoj middleware u nizu.

Zašto koristiti Middleware ?

Middleware ključan je za modularizaciju funkcionalnosti vaše aplikacije i poboljšanje mogućnosti održavanja. Omogućuje vam da svoje rukovatelje rutama održavate čistima i usredotočenima na specifične zadatke dok uobičajene ili međusektorske probleme prebacujete na middleware funkcije. Ovo odvajanje briga promiče ponovnu upotrebu koda i čini vašu bazu koda organiziranijom.

Stvaranje i korištenje Middleware

Za stvaranje middleware u Express.js, definirate funkciju koja uzima tri parametra: request, response i next.

Evo osnovnog primjera middleware koji bilježi svaki dolazni zahtjev:

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žete koristiti app.use() metodu za globalnu primjenu middleware na sve rute ili je možete koristiti selektivno za određene rute.

Redoslijed Middleware izvršenja

Middleware funkcije se izvršavaju redoslijedom kojim su definirani pomoću app.use().

Na primjer:

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

U ovom slučaju, middleware1 izvršit će se prije middleware2 za sve dolazne zahtjeve.

Rješavanje pogrešaka u Middleware

Ako se pojavi pogreška unutar middleware funkcije, možete proslijediti pogrešku funkciji next i Express.js automatski ćete preskočiti na obradu pogrešaka middleware.

Evo primjera:

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

Korištenje Middleware za provjeru autentičnosti

Middleware se obično koristi za implementaciju provjere autentičnosti i autorizacije u web aplikacijama. Na primjer, možete izraditi middleware funkciju koja provjerava je li korisnik autentificiran prije dopuštanja pristupa određenim rutama:

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

 

Zaključak

Middleware in Express.js je vitalni alat za upravljanje i poboljšanje funkcionalnosti vaših web aplikacija. Stvaranjem middleware funkcija za višekratnu upotrebu možete pojednostaviti svoj kod, modularizirati probleme i poboljšati ukupnu mogućnost održavanja vaših projekata. Od rukovanja autentifikacijom do zapisivanja i upravljanja pogreškama, middleware omogućuje vam da učinkovito izgradite robusne i sigurne web aplikacije.