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.