Virheiden käsittely Express.js: tehokkaat strategiat ja vastausviestit

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.