1
resposta

Erro ao consultar Pessoa por Id

Ao adicionar o where no .findone da classe PessoaController, automaticamente, o VSCode adicionou a seguinte constante:

const { where } = require('sequelize/types')

Porém o nodemon ao tentar executar apresentou o seguinte erro: [nodemon] app crashed - waiting for file changes before starting...

Neste caso, removi a constante adicionada e notei que o "select" executado pelo sequelize, busca o 'id' como um "Not a number".

Executing (default): SELECT `id`, `nome`, `ativo`, `email`, `role`, `createdAt`, `updatedAt` FROM `Pessoas` AS `Pessoas` WHERE `Pessoas`.`id` = NaN;

Para resolver isso, fiz uma modificação, explicitando o padrâmetro 'id' na constante utilizada como parâmetro do sequelize:


        const idPessoa = req.params.id
        const umaPessoa = await database.Pessoas.findOne( {
               where: { 
                    id: Number(idPessoa)
                }
        } )    
        return res.status(200).json(umaPessoa)

A dúvida neste caso é: qual deveria ser a modificação para utilizar a abodagem da aula?

1 resposta

oi Alef, não sei dizer diretamente se é isso, mas o seu json tá enviando um número ou uma string (número envolvido por aspas), por dependendo disso, pode ser que você precise converter o valor como já fez na sua solução. Eu prefiro usar o parseInt() ao invés do Number, no geral, os dois resolvem o problema.