1
resposta

Como ficaria esse projeto com banco de dado?

Nesse projeto tem a entidade de usuário, que representa um usuário, com validações, serialização e etc. Mas como ficaria se eu fosse integrar esse projeto com Sequelize por exemplo? Eu precisa de uma outra representação de usuário com as informações relacionadas a definição da tabela ou poderia fazer essas definições no mesmo modelo já existente (usuario.entity.ts)?

Caso tenha outra representação de usuário (um usuario.model.ts) como ele se relacionaria com as validações, serializações de usuario.entity.ts?

1 resposta

Oi, Matheus! Boa tarde! Como vai?

No curso de introdução ao NestJS é mostrado a utilização do Sequelize e a configuração necessária nas classes de entidade. Eu não cheguei nessa parte de BD no meu curso pois iria deixar o conteúdo muito denso. De modo que nos próximos cursos esse tema será abordado.

Eu precisa de uma outra representação de usuário com as informações relacionadas a definição da tabela ou poderia fazer essas definições no mesmo modelo já existente (usuario.entity.ts)?

Caso tenha outra representação de usuário (um usuario.model.ts) como ele se relacionaria com as validações, serializações de usuario.entity.ts?

Na prática vc pode fazer tanto de uma forma como da outra. Vc pode ter uma classe .entity.ts que irá representar o modelo do BD e outra .dto.ts, aplicando o padrão de projeto Data Transfer Object, com as regras de serialização para representar a forma como a informação irá trafegar fora da aplicação. Ou pode ter ambas as configurações numa só classe .entity.ts. A vantagem da primeira abordagem é que vc deixa cada classe com seu objetivo bem definido e as coisas separadas. Contudo, vc acaba tendo código um pouco duplicado. Já na segunda abordagem vc não tem duplicação de código, mas acaba misturando um pouco as coisas no mesmo lugar. Daí, a abordagem escolhida vai mais de situação pra situação. Contudo, de modo geral, eu costumo começar utilizando a segunda abordagem. E, caso o código comece a ficar muito misturado e com pouca legibilidade, eu separo as responsabilidades nos arquivos que citei na primeira abordagem. Inclusivem esse é um dos assuntos que pretendo abordar no próximo curso sobre o NestJS!

Espero que esteja curtindo e aproveitando ao máximo o conteúdo do curso!

Grande abraço e bons estudos, meu aluno!