Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Mensagem indesejada

Boa tarde, tudo bem? Estou com um certo problema, onde ao fazer exemplo de pedir um requisição errado no ListarLivroPorID, ele me retorna o seguinte erro no Postman que é representado na imagem. Porém o correto seria ele me retornar "Autor não encontrado"
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E aqui está o código com as mudanças passadas durante a aula:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas

Bom dia! Ismael, como vai?

Pelo que você descreveu, parece que o erro que está recebendo não é o esperado. Vamos verificar algumas possibilidades:

  1. Verifique o Middleware de Erros: Certifique-se de que o middleware de erros está configurado corretamente para capturar e personalizar as mensagens de erro. No seu arquivo manipuladorDeErros.js, você deve ter algo semelhante a:

    if (error instanceof NaoEncontrado) {
        error.enviarResposta(res);
    }
    

    Isso deve garantir que o erro personalizado seja enviado.

  2. Classe de Erro Personalizada: Verifique se a classe NaoEncontrado está configurada corretamente e se está sendo usada no local certo. No seu caso, o construtor deve ser algo como:

    class NaoEncontrado extends ErrorBase {
        constructor(mensagem = "Autor não encontrado") {
            super(mensagem, 404);
        }
    }
    
  3. Uso do Middleware: Certifique-se de que o middleware de erro está sendo usado após todas as rotas no seu app.js. O Express processa middlewares na ordem em que são definidos, então ele deve estar no final:

    app.use(manipulador404);
    app.use(manipuladorDeErros);
    
  4. Verificação de ID: No seu controlador, quando você não encontra o autor, certifique-se de que está chamando o next() com uma instância do erro NaoEncontrado:

    if (!autorResultado) {
        next(new NaoEncontrado("Autor não encontrado"));
    }
    

Revise essas etapas e veja se alguma configuração está faltando ou incorreta. Caso essas soluções não resolva o seu problema, peço que compartilhe comigo todo o seu código para eu realizar mais testes.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

Bom, eu entendi como isso tudo aconteceu, chega até ser engraçado. É que a requisição incorreta, tem que ser igual a quantidade do índice do id. Então se o id, por exemplo, tiver 9 caracteres, no parâmetro, tem que ter 9 caracteres. E para dar o erro correto igual durante o vídeo, é só trocar os dois números finais, mas contendo a quantidade de caracteres desejada. Algo que eu não fiz durante a execução no parâmetro do Postmans, eu havia colocado "GET http://localhost:3000/autores/1234124, achando que retornaria "autor não encontrado", mas dava "requisição incorreta".