Kuriant programą, klaidų tvarkymas yra labai svarbus aspektas, užtikrinantis sklandžią vartotojo patirtį ir sumažinant nenumatytas problemas. Aplinkoje Express.js turite keletą būdų, kaip tvarkyti klaidas ir pateikti tinkamus atsakymo pranešimus vartotojams. Štai vadovas, kaip tai pasiekti:
Naudojimas Middleware visuotiniam klaidų tvarkymui
Sukurkite visuotinį klaidų apdorojimą pridėdami šį kodą savo programos pagrindinio failo middleware pabaigoje. app.js
Express.js
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something went wrong!');
});
Konkrečių klaidų tvarkymas Route
Konkrečiame route, galite naudoti bloką try
- catch
, kad gautumėte klaidas ir pateiktumėte atitinkamus atsakymo pranešimus.
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!');
}
});
Centralizuotos klaidos naudojimas Middleware
Sukurkite centralizuotą klaidą middleware, kad galėtumėte tvarkyti klaidas, kylančias iš įvairių 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');
});
Asinchroninių klaidų tvarkymas
Asinchroninio apdorojimo atveju naudokite šį next
metodą klaidoms perduoti visuotiniam klaidų apdorojimui middleware.
app.get('/data',(req, res, next) => {
fetchDataFromDatabase((err, data) => {
if(err) {
return next(err);
}
res.json(data);
});
});
Išvada
Klaidų tvarkymas yra neatsiejama programų kūrimo dalis Express.js. Naudodami middleware, tvarkydami konkrečias klaidas ir pateikdami tinkamus atsakymo pranešimus, galite sukurti sklandžią ir patikimą taikymo patirtį savo vartotojams.