1
resposta

Dúvida na declaração const {id}

Gostaria de tirar uma dúvida, durante as aulas o id foi declarado assim const {id}, isso aconteceu devido a tabela possuir uma coluna com o mesmo nome? Estou perguntando pq quando tirei o {} no postman retornou erro "Unknow column 'NaN' in 'where clause'".

1 resposta

Oi, Leonardo, tudo bem?

Você se refere ao seguinte código, certo?

    const { id } = req.params;

Na verdade, o nome id nesse código não se refere à coluna na tabela, e sim ao parâmetro da rota que nomeamos no arquivo pessoasRoute.js:

router.get("/pessoas/:id", PessoaController.pegaUmaPessoa)

Ao escrevermos :id, o Express entende que queremos obter aquele dado de alguma forma no controlador daquela rota. Assim, no arquivo PessoaController.js, teremos o seguinte código:

static async pegaUmaPessoa(req, res) {
    const { id } = req.params;
}

Nesse código, req.params é um objeto com os parâmetros que definimos em pessoasRoute.js, ou seja, é um objeto que possui uma propriedade chamada id. A instrutora utilizou a sintaxe de desestruturação para obter a propriedade id de req.params.

O mesmo código acima poderia ser escrito para o seguinte:

static async pegaUmaPessoa(req, res) {
    const id = req.params.id;
}

Mas, utilizando a sintaxe de desestruturação, podemos obter diversas propriedades ao mesmo tempo de um mesmo objeto. Então, se a rota tivesse parâmetros chamados "id" e "nome", por exemplo, poderíamos escrever o seguinte código:

static async pegaUmaPessoa(req, res) {
    const { id, nome } = req.params;
}

Espero ter ajudado! Bons estudos :)