Under applikationsutveckling är felhantering en avgörande aspekt för att säkerställa en smidig användarupplevelse och mildra oförutsedda problem. I Express.js miljön har du flera sätt att hantera fel och ge lämpliga svarsmeddelanden till användarna. Här är en guide för hur du uppnår detta:
Används Middleware för global felhantering
Skapa en global felhantering middleware genom att lägga till följande kod i slutet av app.js
eller huvudfilen i din Express.js applikation.
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something went wrong!');
});
Hantera fel för specifika Route
I en specifik route, kan du använda ett try
- catch
block för att fånga upp fel och ge lämpliga svarsmeddelanden.
app.get('/profile/:id', async(req, res) => {
try {
const user = await getUserById(req.params.id);
res.json(user);
} catch(error) {
res.status(404).send('User not found!');
}
});
Använder centraliserat fel Middleware
Skapa ett centraliserat fel middleware för att hantera fel som härrör från olika route.
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
app.use((err, req, res, next) => {
res.status(err.status || 500);
res.send(err.message || 'Something went wrong');
});
Hantera asynkrona fel
Vid asynkron hantering, använd next
metoden för att skicka fel till den globala felhanteringen middleware.
app.get('/data',(req, res, next) => {
fetchDataFromDatabase((err, data) => {
if(err) {
return next(err);
}
res.json(data);
});
});
Slutsats
Felhantering är en integrerad del av Express.js applikationsutveckling. Genom att använda middleware, hantera specifika fel och tillhandahålla lämpliga svarsmeddelanden kan du skapa en smidig och pålitlig applikationsupplevelse för dina användare.