Johdatus Middleware sisään Express.js
Middleware in Express.js on tehokas konsepti, jonka avulla voit suorittaa toimintoja tietyssä järjestyksessä pyyntö-vastauksen elinkaaren aikana. Nämä toiminnot voivat suorittaa erilaisia tehtäviä, kuten todennusta, kirjaamista, tietojen validointia ja paljon muuta. Middleware funktiot suoritetaan peräkkäin, ja jokaisella middleware on pääsy request
ja- response
objekteihin sekä toimintoon, joka siirtää ohjauksen pinon seuraavalle next
. middleware
Miksi käyttää Middleware ?
Middleware on välttämätön sovelluksesi toiminnallisuuden modularisoimiseksi ja sen ylläpidettävyyden parantamiseksi. Sen avulla voit pitää reitinkäsittelijäsi puhtaana ja keskittyneenä tiettyihin tehtäviin samalla kun siirrät yleiset tai monialaiset huolenaiheet toimintoihin middleware. Tämä huolenaiheiden erottelu edistää koodin uudelleenkäytettävyyttä ja tekee koodikannastasi organisoidumman.
Luominen ja käyttö Middleware
Luodaksesi sovelluksessa middleware, Express.js määrität funktion, joka ottaa kolme parametria: request
, response
, ja next
.
Tässä on perusesimerkki, middleware joka kirjaa jokaisen saapuvan pyynnön:
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);
Voit käyttää app.use()
menetelmää middleware globaalisti kaikille reiteille tai voit käyttää sitä valikoivasti tietyille reiteille.
Toteutusjärjestys Middleware _
Middleware funktiot suoritetaan siinä järjestyksessä, jossa ne on määritetty käyttämällä app.use()
.
Esimerkiksi:
app.use(middleware1);
app.use(middleware2);
Tässä tapauksessa middleware1
suoritetaan ennen middleware2
kaikille saapuville pyynnöille.
Käsittelyvirheitä Middleware
Jos funktiossa tapahtuu virhe middleware, voit välittää virheen funktiolle next
ja Express.js siirtyy automaattisesti virheenkäsittelyyn middleware.
Tässä on esimerkki:
const errorMiddleware =(err, req, res, next) => {
console.error(err);
res.status(500).send('Something went wrong!');
};
app.use(errorMiddleware);
Käyttö Middleware todennukseen
Middleware käytetään yleisesti todennuksen ja valtuutuksen toteuttamiseen web-sovelluksissa. Voit esimerkiksi luoda middleware toiminnon, joka tarkistaa, onko käyttäjä todennettu ennen kuin sallit pääsyn tietyille reiteille:
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!');
});
Johtopäätös
Middleware in Express.js on tärkeä työkalu verkkosovellustesi hallintaan ja toimivuuden parantamiseen. Luomalla uudelleenkäytettäviä middleware toimintoja voit virtaviivaistaa koodiasi, moduloida huolenaiheita ja parantaa projektiesi yleistä ylläpidettävyyttä. Todennuksen käsittelystä lokiin ja virheiden hallintaan middleware antaa sinulle mahdollisuuden rakentaa tehokkaita ja suojattuja verkkosovelluksia.