1
resposta

Uso de Middlewares

Olá, recentemente comecei um projeto pessoal para aplicar o que aprendi aqui na Alura, seguindo nenhuma aula durante o desenvolvimento para fazer na raça!!!

porem encontrei uma barreira na hora de implementar o uso do JWT (não quis usar o Passport, fiz o meu próprio middleware), porem o mesmo acaba acessando o banco de dados para acessar a chave de autenticação da assinatura do token do usuario. Então eis a minha duvida...

O Middleware é uma subcamada de Controller? se não, acessando o banco de dados pelo middleware estou quebrando a logica da arquitetura MVC?

1 resposta

Oi Vinicius, tudo bem? O middleware do Express na verdade é um recurso genérico que outros frameworks possuem de forma específica. Temos outros termos como: interceptor, filter, pipe, etc. Todos esses são middlewares de alguma forma, o que muda são os conceitos por trás de cada termo desse.

Sobre o MVC, e difícil hoje que alguma aplicação hoje siga o MVC puramente. É um padrão que certamente ajuda a gente a pensar nas divisões das camadas, mas sim, se nos restringirmos ao MVC, o middleware seria uma sub-camada do controller, mas que é executado antes dele. Pra dizer se tá quebrando ou não a lógica da arquitetura, ia depender da implementação. No geral, os modelos deveriam acessar a camada de dados, mas esses modelos podem ser usados no Controller, então se você tiver o modelo do token e estiver usando ele no middleware, eu não consideraria que você está quebrando o padrão. Porém, se o middleware cria a coneção, faz a query e processa o request, ai sim, eu diria que existe uma quebra.