阿波罗空上下文
Posted
技术标签:
【中文标题】阿波罗空上下文【英文标题】:Apollo Empty context 【发布时间】:2018-09-09 12:08:34 【问题描述】:我正在尝试获取上下文,在我的服务器端,不幸的是我总是得到一个空的上下文
客户端(角度):
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】:客户端的上下文与服务器端解析器的上下文无关。
要将信息传递给服务器,您可能需要使用query arguments。这就是解析器函数中的 args
参数的用途。
服务器端
关于服务器端的上下文,取自Resolver function signature:
context:这是特定查询中所有解析器共享的对象,用于包含每个请求的状态,包括身份验证信息、数据加载器实例以及解析时应考虑的任何其他内容查询。如果您使用的是 Apollo Server,请阅读设置文档中有关如何设置上下文的信息。
还有这里,graphqlOptions.context:
context 是一个可以在每个解析器中作为第三个参数访问的对象。这是根据当前请求传递信息的好地方。
客户端
在客户端,上下文与Apollo Link 和网络层有关。
关于Apollo Link Context:
由于链接是用来组合的,它们需要一种简单的方法来组合 将有关请求的元数据沿着链接链发送。
...
上下文不发送到服务器,而是用于链接到链接的通信。
【讨论】:
以上是关于阿波罗空上下文的主要内容,如果未能解决你的问题,请参考以下文章