小编Gau*_*nec的帖子

TypeError:无法读取未定义的 NestJs 的属性“角色”

如果不是管理员,我会尝试阻止某些 root,但是当我运行代码时,出现 TypeError 但我不知道如何解决它。

谢谢

角色.guards.ts

import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { Role } from './role.enums';
import { ROLES_KEY } from './roles.decorator';

@Injectable()
export class RolesGuard implements CanActivate {
  constructor(private reflector: Reflector) {}

  canActivate(context: ExecutionContext): boolean {
    const requiredRoles = this.reflector.getAllAndOverride<Role[]>(ROLES_KEY, [
      context.getHandler(),
      context.getClass(),
    ]);
    if (!requiredRoles) {
      return true;
    }
    const { user } = context.switchToHttp().getRequest();
    return requiredRoles.some((Role) => user.roles?.includes(Role));
  }
}
Run Code Online (Sandbox Code Playgroud)

文章.controller.ts

@UseGuards(JwtAuthGuard)
@Roles(Role.Admin)
async addArticle(
    @Body('title') artTitle: …
Run Code Online (Sandbox Code Playgroud)

nestjs

6
推荐指数
3
解决办法
3316
查看次数

标签 统计

nestjs ×1