问题描述
我有这个问题: nestjs context.swithToHttp().getRequest() returns undefined
不同之处在于我需要为我的应用程序支持 GraphQL 和 REST,但实际上,我无法想出任何方法来为 GraphQL 和 REST 使用相同的 RoleGuard,因为它们的上下文不同。
解决方法
我自己想出来的
let user: User;
if (context.getType() === 'http') {
user = context.switchToHttp().getRequest().user;
} else if (context.getType<GqlContextType>() === 'graphql') {
const ctx = GqlExecutionContext.create(context);
user = ctx.getContext().req.user;
}