Tratarea erorilor în Express.js: strategii eficiente și mesaje de răspuns

În timpul dezvoltării aplicației, gestionarea erorilor este un aspect crucial pentru a asigura o experiență ușoară a utilizatorului și pentru a atenua problemele neprevăzute. În Express.js mediu, aveți mai multe modalități de a gestiona erorile și de a oferi utilizatorilor mesaje de răspuns adecvate. Iată un ghid despre cum să realizați acest lucru:

Utilizare Middleware pentru tratarea globală a erorilor

Creați o gestionare globală a erorilor middleware adăugând următorul cod la sfârșitul app.js fișierului sau principal al Express.js aplicației dvs.

app.use((err, req, res, next) => {  
  console.error(err.stack);  
  res.status(500).send('Something went wrong!');  
});  

Gestionarea erorilor pentru anumite Route

Într-un anumit route, puteți utiliza un try bloc catch pentru a detecta erorile și a furniza mesaje de răspuns adecvate.

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!');  
  }  
});  

Utilizarea Eroare centralizată Middleware

Creați o eroare centralizată middleware pentru a gestiona erorile care provin din diverse 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');  
});  

Gestionarea erorilor asincrone

În cazul manipulării asincrone, utilizați next metoda pentru a transmite erorile la gestionarea globală a erorilor middleware.

app.get('/data',(req, res, next) => {  
  fetchDataFromDatabase((err, data) => {  
    if(err) {  
      return next(err);  
    }  
    res.json(data);  
  });  
});  

 

Concluzie

Gestionarea erorilor este o parte integrantă a Express.js dezvoltării aplicațiilor. Utilizând middleware, gestionând anumite erori și furnizând mesaje de răspuns adecvate, puteți crea o experiență de aplicație fluidă și fiabilă pentru utilizatorii dvs.