Klaidų tvarkymas Express.js: veiksmingos strategijos ir atsakymo pranešimai

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.