typescript 错误[ExceptionHandler]无法读取NestJs中未定义的属性'__guards__'

aelbi1ox  于 2023-02-20  发布在  TypeScript
关注(0)|答案(2)|浏览(135)

我正在Nest项目中实现一个简单的身份验证。
当我加上

@UseGuards(AuthGuard('local'))

到我的控制器,我有以下错误:

ERROR [ExceptionHandler] Cannot read property '__guards__' of undefined
 at /home/cedric/Bureau/programmation/project_bank/project/node_modules/@nestjs/core/scanner.js:147:152

我遵循了Nest的所有官方文档来做这件事。
我的控制器是

@UseGuards(AuthGuard('local'))
  @Post('login')
  async login(@Request() req) {
    console.log(req.body.username);
    return req.body.username;
  }

和我的授权卫士

@Injectable()
export class LocalAuthGuard extends AuthGuard('local') {}
ni65a41a

ni65a41a1#

我认为这是一个依赖版本不匹配的问题。
您需要确保@nestjs/platform-express@nestjs/core@nestjs/common在同一版本中(我相信只有次要的部分才重要)。

ee7vknir

ee7vknir2#

这确实是依赖项版本不匹配。
我按照以下步骤更新了我的项目:
1.从npm-check-updates库安装ncu:

sudo npm install -g npm-check-updates

1.在项目文件夹中运行ncu:

ncu

1.更新依赖项:

ncu -u

1.最后,安装更新

npm install

相关问题