阿波罗空的背景

时间:2018-03-30 12:38:37

标签: angular meteor graphql apollo

我正在尝试获取上下文,在我的服务器端,不幸的是我总是得到一个空的上下文

  

客户端(角度):

this.apollo.query({ query: gql`{ message }`, context: { test: 'test' } }).subscribe(console.log)
  

服务器端:

message: {
   type: GraphQLString,
   resolve: (obj, args, context, info) => {
     console.log('context: ', context)

     return 'hey'
   }

1 个答案:

答案 0 :(得分:1)

客户端上下文与服务器端解析器的上下文无关。

要将信息传递到服务器,您可能需要使用query arguments。这就是解析器函数中args参数的用途。

服务器端

关于服务器端的上下文,取自Resolver function signature

  
      
  1. context :这是特定查询中所有解析程序共享的对象,用于包含每个请求状态,包括身份验证信息,数据加载程序实例以及应该采用的任何其他内容。解析查询时的帐户。如果您正在使用Apollo Server,请阅读有关如何在设置文档中设置上下文的内容。
  2.   

此外,graphqlOptions.context

  

上下文是一个可在每个解析器中作为第三个参数访问的对象。这是传递取决于当前请求的信息的好地方。

客户端

在客户端上,上下文与Apollo Link和网络层相关。

关于Apollo Link Context

  

由于链接是要编写的,因此需要一种简单的方法   在链接链中发送有关请求的元数据。

     

...

     

上下文已发送到服务器,但用于链接到链接通信。