Uma resposta de erro
Parte da seção Fundamentos de Express do Journey de Node.js da Coddy. Lição 17 de 23.
Uma rota pode falhar porque algo deu errado no servidor. Lançar um Error encaminha essa falha para o Express. Um manipulador de erros é um middleware com quatro parâmetros, incluindo err primeiro. O Express envia erros lançados para esse tipo de middleware.
app.use((err, req, res, next) => {
res.status(500).json({error: 'Try later'});
});Coloque o manipulador depois das rotas. O cliente deve receber uma mensagem curta, enquanto o servidor pode registrar os detalhes. Mantenha os quatro parâmetros mesmo que next não seja usado: o Express usa o formato da função para reconhecer manipuladores de erros.
Antes de adicionar um manipulador, GET /broken retorna a própria página de erro HTML do Express. Chamar next(err) também encaminha um erro para o manipulador de erros; chamar next() continua normalmente.
Desafio
FácilA execução inicia apenas practice-errors/server.js. Seus arquivos do Recipe Box permanecem intactos, e você continuará trabalhando neles na próxima lição.
Execute o programa e envie GET /broken para ver a página de erro padrão. Adicione um manipulador de erros depois das rotas. Registre err.message com console.error e, em seguida, envie o status 500 e {"error":"Try later"}. A resposta não deve expor Database offline, mas o Console deve exibi-lo.
As rotas que lançam erros estão em practice-errors/routes.js, que está bloqueado. Mantenha a montagem; escreva o manipulador em server.js.
Experimente você mesmo
import routes from './routes.js';
import express from 'express';
const app = express();
app.use(routes);
// Adicione o manipulador de erros aqui.
app.listen(3000);
Todas as lições de Fundamentos de Express
Pratique por conta própria: Playground de Express