Middleware v Express.js: Obravnava vmesne zahteve

Uvod v Middleware in Express.js

Middleware in Express.js je močan koncept, ki vam omogoča izvajanje funkcij v določenem vrstnem redu med življenjskim ciklom zahteva-odziv. Te funkcije lahko izvajajo različne naloge, kot so preverjanje pristnosti, beleženje, preverjanje podatkov in drugo. Middleware funkcije se izvajajo zaporedno in vsaka middleware ima dostop do objektov request in response, pa tudi do next funkcije, ki preda nadzor naslednji middleware v skladu.

Zakaj uporabljati Middleware ?

Middleware je bistvenega pomena za modularizacijo funkcionalnosti vaše aplikacije in izboljšanje njene vzdržljivosti. Omogoča vam, da so vaši upravljavci poti čisti in osredotočeni na določene naloge, medtem ko pogoste ali medsektorske skrbi preložite na middleware funkcije. To ločevanje skrbi spodbuja ponovno uporabnost kode in naredi vašo kodno zbirko bolj organizirano.

Ustvarjanje in uporaba Middleware

Če želite ustvariti middleware v Express.js, definirate funkcijo, ki sprejme tri parametre: request, response in next.

Tukaj je osnovni primer, middleware ki beleži vsako dohodno zahtevo:

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

Metodo lahko uporabite za globalno app.use() uporabo middleware za vse poti ali pa jo uporabite selektivno za določene poti.

Vrstni red Middleware izvršitve

Middleware funkcije se izvajajo v vrstnem redu, kot so definirane z app.use().

Na primer:

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

V tem primeru middleware1 bo izvedena prej middleware2 za vse dohodne zahteve.

Obravnava napak v Middleware

Če pride do napake znotraj middleware funkcije, lahko napako posredujete funkciji next in Express.js samodejno preskočite na obravnavo napak middleware.

Tukaj je primer:

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

Uporaba Middleware za preverjanje pristnosti

Middleware se običajno uporablja za izvajanje avtentikacije in avtorizacije v spletnih aplikacijah. Ustvarite lahko na primer middleware funkcijo, ki preveri, ali je uporabnik preverjen, preden dovoli dostop do določenih poti:

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ček

Middleware in Express.js je bistveno orodje za upravljanje in izboljšanje funkcionalnosti vaših spletnih aplikacij. Z ustvarjanjem middleware funkcij za večkratno uporabo lahko poenostavite svojo kodo, modularizirate skrbi in izboljšate splošno vzdržljivost svojih projektov. Od ravnanja s preverjanjem pristnosti do beleženja in upravljanja napak middleware vam omogoča, da učinkovito zgradite robustne in varne spletne aplikacije.