GraphQL.js,子域上的参数

时间:2017-10-24 11:21:10

标签: json express graphql graphql-js

我使用GraphQL.js和Express建立了一个GraphQL数据库,它从硬编码的JSON-Object中获取数据。我的JSON-Object看起来像这样:

exports.store = { “类别”:  {...}, “顾客”:  {...}, “供应商”:  {...}, “项目”:  {...}, “品”:  {...}, }

根据类别,每个条目的每个类别和子字段都有多个条目。我为所有类别编写了解析器,例如可以通过id获取特定客户的数据。

我现在想要做的是类似于SQL中的WHERE-Clause。产品条目如下所示:

“1”:{                 “ID”:1,                 “名”:“椰子”                 “类别”:{                     “ID”:1,                     “名”:“水果”                 },                 “供应商”:{                     “ID”:32,                     “名称”:“异国水果公司”                 }             },

所以现在我希望能够进行查询,这会给我所有产品都有一个由其ID指定的特定供应商。我可以以某种方式重用我已经为此编写的解析器吗?甚至可以在子字段上设置一个参数,指定要返回哪个父项?

1 个答案:

答案 0 :(得分: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);
  },
  ...
};

请详细说明情况并非如此;)