2
respostas

parametro estudanteId

Por que ao utilizar o parametro "estudanteId" funciona sendo que o nome utilizado no banco de dados esta como estudante_id ? Fiquei confuso nessa parte.

2 respostas

Olá, Leonardo! Tudo bem?

O Sequelize, que é o ORM que estamos utilizando, possui uma funcionalidade chamada "aliasing". Isso significa que ele pode mapear os nomes das colunas do banco de dados para nomes diferentes em seu código. No nosso caso, o Sequelize está mapeando o nome da coluna "estudante_id" para "estudanteId" em nosso código.

Isso é feito para seguir a convenção de nomes do JavaScript, que é camelCase (começando com letra minúscula e capitalizando cada palavra subsequente), enquanto no banco de dados, a convenção é snake_case (todas as letras minúsculas com sublinhados entre as palavras).

Por exemplo, quando estamos criando uma nova matrícula, nós fazemos algo assim:

{
    "status": "cancelado",
    "estudanteId": 1,
    "cursoId": 2
}

Mesmo que no banco de dados a coluna seja chamada de "estudante_id", o Sequelize sabe que "estudanteId" se refere a essa coluna.

Espero ter ajudado e bons estudos!

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

Porem caso eu faça o mesmo procedimento, um post para a rota /pessoas/2/matriculas o id da pessoa 1 que será matriculado... Então essa era minha duvida, se o exemplo foi mal elabora, ou ficou faltando realmente declarar esse parametro (const { studentId } = req.params) ou se é algo por debaixo dos panos que eu não estou sabendo identificar.