Tratamento de erros em Express.js: estratégias eficazes e mensagens de resposta

Durante o desenvolvimento do aplicativo, o tratamento de erros é um aspecto crucial para garantir uma experiência de usuário tranquila e mitigar problemas imprevistos. No Express.js ambiente, você tem várias maneiras de lidar com erros e fornecer mensagens de resposta adequadas aos usuários. Aqui está um guia sobre como conseguir isso:

Usando Middleware para tratamento global de erros

Crie um tratamento de erro global middleware adicionando o código a seguir no final do app.js arquivo principal ou do seu Express.js aplicativo.

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

Manipulando Erros para Específicos Route

Em um específico route, você pode usar um bloco try- catch para detectar erros e fornecer mensagens de resposta apropriadas.

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

Usando Erro Centralizado Middleware

Crie um erro centralizado middleware para lidar com erros originados de vários arquivos 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');  
});  

Tratamento de erros assíncronos

No caso de tratamento assíncrono, use o next método para passar erros para o tratamento de erros global middleware.

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

 

Conclusão

O tratamento de erros é parte integrante do Express.js desenvolvimento de aplicativos. Ao utilizar middleware, lidar com erros específicos e fornecer mensagens de resposta apropriadas, você pode criar uma experiência de aplicativo tranquila e confiável para seus usuários.