如何在 Ts.ED graphql 解析器中访问请求标头?

问题描述 投票:0回答:0

我选择了使用 Prisma、TypeGraphql 和 Koa 的 Ts.ED 应用程序的默认安装。 它为 graphql 创建了一个标准配置,如下所示:

export const config: Partial<TsED.Configuration> = {
  version: pkg.version,
  envs,
  logger: loggerConfig,
  graphql: {
    default: {
      path: "/graphql",
      buildSchemaOptions: {
      },
    }
  },
  // additional shared configuration
};

我有一个用户解析器和一个简单的注册突变;

@ResolverService()
export class UserResolver {
  // ...

  @Mutation(() => User)
  async signUp(
    @Arg('username') username: string,
    @Arg('email') email: string, 
    @Arg('password') password: string,
  ): Promise<User> {
    // const ipAddr = ... <- trying to get ip address of requester
    return this.userService.signUp(ipAddr, email, password, username)
  }

}

我尝试注入

@Ctx()
但它里面没有请求数据(或者我找不到)。

此外,当我使用可根据请求注入的服务时,我可以借助中间件将其字段设置为上下文。但是当我试图从解析器访问它时,它的上下文字段变为空。

typescript graphql koa typegraphql
© www.soinside.com 2019 - 2024. All rights reserved.