Javascript 如何同时访问解析器中的上下文和参数?

Javascript 如何同时访问解析器中的上下文和参数?,javascript,nestjs,Javascript,Nestjs,这是我的nestJS应用程序中的解析器示例(使用graphQL): 在第一个查询中,我访问上下文,在第二个查询中,我通过decorator访问args import { Args, Query, Resolver } from '@nestjs/graphql' @Resolver('List') export class ListResolvers { constructor(private readonly listService: ListService) {} @Query(

这是我的nestJS应用程序中的解析器示例(使用graphQL):

在第一个查询中,我访问上下文,在第二个查询中,我通过decorator访问args

import { Args, Query, Resolver } from '@nestjs/graphql'

@Resolver('List')
export class ListResolvers {
  constructor(private readonly listService: ListService) {}

  @Query(() => [Data])
  async getList(obj, args, context) {
    const token = context.token
    return this.listService.getList(token)
  }

  @Query(() => [Data])
  async getList(
    @Args('param') param: GetListParam
  ): Promise<Array<Data>> {
    return this.listService.getList(param)
  }
}

如何访问第二个查询(使用
@Args
的查询)中的上下文?

您可以使用此方法访问请求头。 首先在app.module.ts中的graphqlModule导入中添加上下文

imports: [
GraphQLModule.forRoot({ ..., context: ({req}) => ({req})})
]
然后在graphql查询中使用上下文,如下所示

 @Query(() => [Data])
  async getList(
    @Args('param') param: GetListParam,
    @Context('req') req
  ): Promise<Array<Data>> {
    const token = req.headers.authorization;
    return this.listService.getList(param)
  }
@Query(()=>[数据])
异步获取列表(
@Args('param')param:GetListParam,
@上下文('req')req
):承诺{
const token=req.headers.authorization;
返回此.listService.getList(参数)
}

您可以使用此方法访问请求头。 首先在app.module.ts中的graphqlModule导入中添加上下文

imports: [
GraphQLModule.forRoot({ ..., context: ({req}) => ({req})})
]
然后在graphql查询中使用上下文,如下所示

 @Query(() => [Data])
  async getList(
    @Args('param') param: GetListParam,
    @Context('req') req
  ): Promise<Array<Data>> {
    const token = req.headers.authorization;
    return this.listService.getList(param)
  }
@Query(()=>[数据])
异步获取列表(
@Args('param')param:GetListParam,
@上下文('req')req
):承诺{
const token=req.headers.authorization;
返回此.listService.getList(参数)
}

从哪里获得
@Context
req
?我已经在app.modules中设置了
context:({req})=>({token:req.headers.authorization})
。ts@user3142695你说从哪里来是什么意思?只需从@nestjs/graphql导入上下文,并在解析器中使用它,就像这样
@Context('token')token
。这应该可以从哪里获得
@Context
req
?我已经在app.modules中设置了
context:({req})=>({token:req.headers.authorization})
。ts@user3142695你说从哪里来是什么意思?只需从@nestjs/graphql导入上下文,并在解析器中使用它,就像这样
@Context('token')token
。这应该行得通