我正在尝试获取上下文,在我的服务器端,不幸的是我总是得到一个空的上下文
客户端(角度):
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'
}
答案 0 :(得分:1)
客户端上下文与服务器端解析器的上下文无关。
要将信息传递到服务器,您可能需要使用query arguments。这就是解析器函数中args
参数的用途。
关于服务器端的上下文,取自Resolver function signature:
- context :这是特定查询中所有解析程序共享的对象,用于包含每个请求状态,包括身份验证信息,数据加载程序实例以及应该采用的任何其他内容。解析查询时的帐户。如果您正在使用Apollo Server,请阅读有关如何在设置文档中设置上下文的内容。
醇>
上下文是一个可在每个解析器中作为第三个参数访问的对象。这是传递取决于当前请求的信息的好地方。
在客户端上,上下文与Apollo Link和网络层相关。
由于链接是要编写的,因此需要一种简单的方法 在链接链中发送有关请求的元数据。
...
上下文不已发送到服务器,但用于链接到链接通信。