Javascript 如何同时访问解析器中的上下文和参数?
这是我的nestJS应用程序中的解析器示例(使用graphQL): 在第一个查询中,我访问上下文,在第二个查询中,我通过decorator访问argsJavascript 如何同时访问解析器中的上下文和参数?,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(
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
。这应该行得通