3
respostas

Minha listagem de usuários vem um array vazio

Não entendo o motivo, mas quando tento listar os usuários cadastrados no banco de dados, vem um array vazio. Apesar de ter implementado da mesma forma que apresentado em aula, e principalmente, eu consigo cadastrar um novo usuário no banco, mas na hora de listar é como se o banco estivesse vazio.

user.service.ts

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

user.controller.ts

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Por fim, esses são os dados que cadastrei por meio do método "create" dentro do UserService:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

só o que retorna:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Se alguém puder me dar uma força, eu ficaria imensamente agradecido.

3 respostas

Olá, Everson! Tudo bem?

Tente verificar o método de listar os usuários, o instrutor utilizou um map para retornar a lista com o DTO:

  async listUsuarios() {
    const usuariosSalvos = await this.usuarioRepository.find();
    const usuariosLista = usuariosSalvos.map(
      (usuario) => new ListaUsuarioDTO(usuario.id, usuario.nome),
    );
    return usuariosLista;
  }

Se você puder compartilhar o código no github, eu agradeceria bastante pois assim consigo visualizar melhor.

Claro, o link do repositório é: https://github.com/Eversonv4/loja

Olá, Everson! Como vai?

Pelo que entendi, você está tendo problemas para listar os usuários cadastrados no banco de dados, certo? Vamos tentar resolver isso juntos.

Primeiramente, verifique se a função listaUsuarios() no serviço está realmente retornando os usuários. Você pode fazer isso inserindo um console.log() antes do retorno para visualizar o que está sendo buscado no banco de dados.

async listaUsuarios(): Promise<UsuarioEntity[]> {
    const usuarios = await this.usuarioRepository.find();
    console.log(usuarios);
    return usuarios;
}

Se os usuários estiverem sendo retornados corretamente no console, o problema pode estar na sua rota. No seu user.controller.ts, certifique-se de que a rota @Get() está chamando a função listaUsuarios() do serviço corretamente.

@Get()
async listaUsuarios(): Promise<UsuarioEntity[]> {
    return this.usuarioService.listaUsuarios();
}

Se ainda assim o problema persistir, pode ser que os usuários estejam sendo criados, mas não persistidos no banco de dados. Para verificar isso, você pode tentar logar o retorno da função criaUsuario() no serviço, como no exemplo abaixo:

async criaUsuario(usuarioEntity: UsuarioEntity) {
    const usuarioCriado = await this.usuarioRepository.save(usuarioEntity);
    console.log(usuarioCriado);
}

Se o usuário criado não estiver sendo logado corretamente, o problema pode estar na criação do usuário. Certifique-se de que todos os campos necessários estão sendo preenchidos corretamente antes de chamar a função criaUsuario().

Espero que essas sugestões possam te ajudar a encontrar o problema. Lembre-se de que é normal encontrar dificuldades durante o processo de aprendizado, então continue persistindo! Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software