1
resposta

[Bug] Erro ao injetar objeto petController

Ao fazer a injeção no router estou recebendo um erro que ainda não tinha me deparado. Talvez seja algo que eu não esteja conseguindo enxergar. Se não me engano é um problema de passagem dos tipos de parâmetro esperado. Me corrija se eu estiver errado...rsrs Mas parece que é a tipagem do objeto petController injetado no router não é o esperado.

Segue os prints:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Cristiano! Tudo bem?

Parece que o erro está relacionado à tipagem dos métodos criaPet e listaPets dentro do seu PetController. O erro indica que o tipo esperado para os parâmetros não está sendo atendido.

Aqui estão algumas sugestões para resolver o problema:

  1. Verifique a Tipagem dos Parâmetros: Certifique-se de que os métodos criaPet e listaPets estão recebendo os tipos corretos de Request e Response do Express. Pelo que vejo, você está importando corretamente, mas vale a pena confirmar se não há conflitos em outras partes do código.

  2. Corrija a Forma de Passar os Métodos: Quando você passa métodos de classe como callbacks, o this pode não ser o que você espera. Uma solução é usar uma função de seta ou fazer o bind do método:

    router.post("/", (req, res) => petController.criaPet(req, res));
    router.get("/", (req, res) => petController.listaPets(req, res));
    

    Ou, usando bind:

    router.post("/", petController.criaPet.bind(petController));
    router.get("/", petController.listaPets.bind(petController));
    

Espero que essas dicas ajudem a resolver o seu problema.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.