Sovelluskehityksen aikana virheiden käsittely on keskeinen osa sujuvan käyttökokemuksen varmistamiseksi ja odottamattomien ongelmien lieventämiseksi. Ympäristössä Express.js sinulla on useita tapoja käsitellä virheitä ja antaa käyttäjille sopivia vastausviestejä. Tässä on opas tämän saavuttamiseen:
Käyttö Middleware globaaliin virheenkäsittelyyn
Luo yleinen virheenkäsittely lisäämällä seuraava koodi sovelluksesi päätiedoston tai päätiedoston middleware loppuun. app.js
Express.js
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something went wrong!');
});
Tiettyjen virheiden käsittely Route
Tietyssä kohdassa route voit käyttää -lohkoa try
virheiden catch
havaitsemiseen ja asianmukaisten vastausviestien antamiseen.
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!');
}
});
Keskitetyn virheen käyttö Middleware
Luo keskitetty virhe middleware käsittelemään virheitä, jotka ovat peräisin eri 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');
});
Asynkronisten virheiden käsittely
Jos kyseessä on asynkroninen käsittely, käytä menetelmää next
siirtääksesi virheet yleiseen virheenkäsittelyyn middleware.
app.get('/data',(req, res, next) => {
fetchDataFromDatabase((err, data) => {
if(err) {
return next(err);
}
res.json(data);
});
});
Johtopäätös
Virheiden käsittely on olennainen osa Express.js sovelluskehitystä. Käyttämällä middleware, käsittelemällä tiettyjä virheitä ja antamalla asianmukaisia vastausviestejä voit luoda sujuvan ja luotettavan sovelluskokemuksen käyttäjillesi.