1
resposta

[Dúvida] Controller fazer a função do Router

Olá,

O Controller não poderia esta fazendo a função do Router ou o padrão de desenvolvimento do Node.JS é desse jeito, separando arquivos.

Outro detalhe, como seria a adoção de utilizar DTO?

1 resposta

Olá, Matheus. Tudo bem?

Ótima pergunta! No desenvolvimento de aplicações Node.js, especialmente quando utilizamos o Express para criar APIs REST, é comum adotar o padrão de arquitetura MVC (Model-View-Controller). Nesse padrão, cada componente tem um papel específico:

  1. Router: É responsável por definir as rotas da aplicação. Ele mapeia as requisições HTTP para as funções específicas nos controllers.

  2. Controller: Atua como intermediário entre as rotas e os models. Ele recebe as requisições das rotas, processa os dados (se necessário) e interage com os models para obter ou modificar os dados no banco de dados. Depois, ele formata a resposta que será enviada de volta ao cliente.

Separar essas responsabilidades em arquivos distintos ajuda a manter o código organizado e facilita a manutenção e escalabilidade da aplicação. Embora tecnicamente você pudesse combinar o router e o controller em um único arquivo, essa prática não é recomendada, pois quebra o princípio de responsabilidade única, tornando o código mais difícil de gerenciar à medida que a aplicação cresce.

Sobre a adoção de DTOs (Data Transfer Objects), eles são usados para transportar dados entre processos de forma estruturada. Em um contexto de API, você pode usar DTOs para definir como os dados devem ser recebidos ou enviados, garantindo que apenas as informações necessárias sejam manipuladas e que a estrutura dos dados seja consistente. Por exemplo, ao criar um novo usuário, um DTO poderia definir quais campos são necessários e suas validações, garantindo que a entrada esteja correta antes de chegar ao controller.

Espero ter ajudado e bons estudos.

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