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.