GraphQL.js,关于子字段的参数
Posted
技术标签:
【中文标题】GraphQL.js,关于子字段的参数【英文标题】:GraphQL.js, Arguments on Subfield 【发布时间】:2018-04-05 04:11:46 【问题描述】:我使用 GraphQL.js 和 Express 建立了一个 GraphQL 数据库,它从硬编码的 JSON 对象中获取数据。我的 JSON 对象如下所示:
exports.store =
"categories":
... ,
"customers":
... ,
"vendors":
... ,
"items":
... ,
"products":
... ,
每个类别都有多个条目,每个条目都有子字段,具体取决于类别。我已经为所有类别编写了解析器,例如可以通过 id 获取特定客户的数据。
我现在想做的是类似于 SQL 中的 WHERE 子句。产品条目如下所示:
"1":
"id":1,
"name":"Coconut",
"category":
"id":1,
"name":"Fruits"
,
"vendor":
"id":32,
"name":"Exotic Fruits Company"
,
所以现在我希望能够进行查询,它会为我提供所有具有由其 ID 指定的特定供应商的产品。我可以以某种方式重用我已经为此编写的解析器吗?甚至可以在子字段上设置一个参数来指定要返回哪个父级?
【问题讨论】:
【参考方案1】:我不明白你所说的to have an argument on a subfield that specified which of it's parents are to be returned
是什么意思。
我读到你想要一个解析器,它只返回带有特定 vendorId
的产品,这应该可以工作:
type Query
products($vendorId: Int): [Product]
const resolvers =
...
products: ( vendorId ) =>
return store.products.values().filter(product => product.vendor.id === vendorId);
,
...
;
如果不是这样,请详细说明;)
【讨论】:
感谢您的帮助。以上是关于GraphQL.js,关于子字段的参数的主要内容,如果未能解决你的问题,请参考以下文章
GraphQL.js Node/Express:如何将对象作为 GraphQL 查询参数传递
GraphQL - Gatsby.js- React 组件。 - 如何查询变量/参数?
GraphQL JS 使用 .graphql 文件从节点 js 进行查询