1
resposta

[Bug] Cannot read properties of undefined (reading 'findOne')

Estou tentando usar o insomnia para testar a rota POST, porém estou tendo o seguinte erro na hora de cadastrar um usuário:

{
    "message": "Cannot read properties of undefined (reading 'findOne')"
}

Acredito que o erro está no meu service:

const usuario = await database.usuarios.findOne({
    where: {
        email: dto.email
    }
});

O nome da tabela que criei usando o sequelize é "usuarios" mesmo, então não consigo identificar qual pode ser o problema.

1 resposta

Olá, José! Tudo bem?

Este erro geralmente ocorre quando você tenta acessar um método de um objeto que não foi definido. No seu caso, parece que o objeto database.usuarios está indefinido.

Aqui estão algumas coisas que você pode verificar:

  1. Certifique-se de que o módulo database está sendo importado corretamente. O arquivo database deve exportar um objeto que contém usuarios como uma de suas propriedades.

  2. Verifique se a tabela usuarios foi criada corretamente no banco de dados. Você mencionou que usou o Sequelize para criar a tabela, então você pode querer verificar se a migração foi executada corretamente. Você pode fazer isso rodando o comando sequelize db:migrate no terminal.

  3. Certifique-se de que o Sequelize está configurado corretamente para se conectar ao seu banco de dados. Se a conexão com o banco de dados não estiver funcionando, isso pode fazer com que database.usuarios seja undefined.

Aqui está um exemplo de como seu código poderia ser:

const database = require('../models') // certifique-se de que este caminho está correto

class UsuarioService {
    async cadastrar(dto) {
        try {
            const usuario = await database.usuarios.findOne({
                where: {
                    email: dto.email
                }
            });

            // restante do código...
        } catch (error) {
            throw new Error('Erro ao cadastrar usuario')
        }
    }
}

Espero ter ajudado e bons estudos!