【发布时间】:2020-06-30 11:21:51
【问题描述】:
我的 GraphQL 查询如下所示:
{
p1: property(someArgs: "some_value") {
id
nestedField {
id
moreNestedField {
id
}
}
}
}
在服务器端,我使用的是 Apollo Server。
我有property 的解析器和nestedField 和moreNestedField 的其他解析器。
我需要在嵌套解析器上检索 someArgs 的值。
我尝试使用解析器上可用的context 来做到这一点:
property: (_, {someArgs}, ctx) => {
ctx.someArgs = someArgs;
// Do something
}
但这不起作用,因为上下文在所有解析器之间共享,因此如果我的查询中有多个 property,则上下文值不会很好。
我还尝试在嵌套解析器上使用info 上的path。我可以进入property 字段,但我没有这里的论点......
我还尝试在 info 上添加一些数据,但它没有在嵌套解析器上共享。
在所有解析器上添加参数不是一种选择,因为它会使查询变得非常臃肿且编写起来很麻烦,我不希望这样。
有什么想法吗?
谢谢!
【问题讨论】:
-
您可以尝试将参数分配给返回值 - 它应该由嵌套解析器中的父级 [并从响应中过滤掉] 可用
-
成功了!它对您的解决方案很有魅力。随意写一个正确的答案来获得荣誉;)
标签: javascript node.js graphql apollo-server