Middleware i Express.js: Håndtering af mellemanmodning

Introduktion til Middleware in Express.js

Middleware in Express.js er et kraftfuldt koncept, der giver dig mulighed for at udføre funktioner i en bestemt rækkefølge i løbet af anmodning-svar-livscyklussen. Disse funktioner kan udføre forskellige opgaver såsom godkendelse, logning, datavalidering og mere. Middleware funktioner udføres sekventielt, og hver middleware har adgang til objekterne request og response, samt next funktionen, som overfører kontrollen til den næste middleware i stakken.

Hvorfor bruge Middleware ?

Middleware er afgørende for at modularisere din applikations funktionalitet og forbedre dens vedligeholdelsesvenlighed. Det giver dig mulighed for at holde dine rutebehandlere rene og fokuserede på specifikke opgaver, mens du aflaster almindelige eller tværgående bekymringer til middleware funktioner. Denne adskillelse af bekymringer fremmer kodegenanvendelighed og gør din kodebase mere organiseret.

Oprettelse og brug Middleware

For at oprette middleware i Express.js definerer du en funktion, der tager tre parametre: request, response, og next.

Her er et grundlæggende eksempel på, middleware der logger hver indgående anmodning:

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

Du kan bruge app.use() metoden til at anvende middleware globalt på alle ruter, eller du kan bruge den selektivt til specifikke ruter.

Ordre om Middleware henrettelse

Middleware funktioner udføres i den rækkefølge, de er defineret ved hjælp af app.use().

For eksempel:

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

I dette tilfælde middleware1 udføres før middleware2 for alle indkommende anmodninger.

Håndtering af fejl i Middleware

Hvis der opstår en fejl i en middleware funktion, kan du videregive fejlen til funktionen next og Express.js vil automatisk springe til fejlhåndtering middleware.

Her er et eksempel:

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

Bruges Middleware til godkendelse

Middleware bruges almindeligvis til implementering af godkendelse og autorisation i webapplikationer. For eksempel kan du oprette en middleware funktion, der kontrollerer, om en bruger er autentificeret, før du giver adgang til bestemte ruter:

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

 

Konklusion

Middleware in Express.js er et vigtigt værktøj til at administrere og forbedre funktionaliteten af ​​dine webapplikationer. Ved at oprette genanvendelige middleware funktioner kan du strømline din kode, modularisere bekymringer og forbedre den overordnede vedligeholdelse af dine projekter. Fra håndtering af godkendelse til logning og fejlhåndtering middleware giver dig mulighed for at bygge robuste og sikre webapplikationer effektivt.