1
resposta

[Bug] Error Nestjs (Validando Usuário)

Seguindo o passo a passo da aula em Nest quando estou Validando o Usuário, recebo esse erro ao executar meu projeto, não encontrei solução alguma na internet, alguém poderia me ajudar?

Código do erro abaixo:

[22:17:02] Starting compilation in watch mode...

[22:17:05] Found 0 errors. Watching for file changes.


C:\Users\Desenvolvimento\Documents\Estudos\Nest\loja\node_modules\tslib\tslib.js:104
        else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                                                                                                  ^
TypeError: Reflect.defineMetadata is not a function
    at C:\Users\Desenvolvimento\Documents\Estudos\Nest\loja\node_modules\@nestjs\common\decorators\core\injectable.decorator.js:36:17
    at Object.__decorate (C:\Users\Desenvolvimento\Documents\Estudos\Nest\loja\node_modules\tslib\tslib.js:104:99)
    at Object.<anonymous> (C:\Users\Desenvolvimento\Documents\Estudos\Nest\loja\node_modules\@nestjs\common\pipes\default-value.pipe.js:26:28)
    at Module._compile (node:internal/modules/cjs/loader:1218:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Function.Module._load (node:internal/modules/cjs/loader:922:12)
    at Module.require (node:internal/modules/cjs/loader:1105:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (C:\Users\Desenvolvimento\Documents\Estudos\Nest\loja\node_modules\@nestjs\common\pipes\index.js:4:22)

Quando eu retiro o tipo do dadosUser (CreatUserDTO) para o erro, porém não irá validar as informações recebidas no Post

Código do controller abaixo:

import { Body, Controller, Get, Post } from '@nestjs/common';
import { CreatUserDTO } from './dto/CreatUser.dto';
import { UserRepository } from './user.repository';

@Controller('/users')
export class UserController {

  constructor(private userRepository: UserRepository) { }
  @Post()
  async createUser(@Body() dadosUser: CreatUserDTO) {
    await this.userRepository.save(dadosUser);
    return dadosUser;
  }

  @Get()
  async listUsers() {
    return this.userRepository.list();
  }
}
1 resposta

Olá Jonatan, tudo bem?

Pelo erro apresentado, parece que pode ser um problema com a biblioteca Reflect-metadata. Tente instalar a última versão dessa biblioteca e veja se o erro persiste. Para instalar, basta executar o seguinte comando no terminal:

npm install reflect-metadata

Caso o erro persista, verifique se todas as dependências do Nest.js estão atualizadas e se não há conflitos entre as versões.

Espero ter ajudado e bons estudos!