查询GraphQL以根据ID或名称查找对象

时间:2019-03-15 13:13:31

标签: node.js graphql

我在类型中定义了以下查询。我设置了一个nodejs和expressGraphQL服务器。

GetComponent<Rigidbody>().AddForce(Camera.main.transform.forward * projectileSpeed);

但是,在前端,我也想根据标题(或从URL派生的唯一字符串)请求特定的产品。如何更改产品查询,使其接受ID或标题字符串?

1 个答案:

答案 0 :(得分:1)

您可以构建一个InputTypeID为可选的String,但需要InputType,然后在解析器中处理这两种情况。

类似的东西:

input ProductSearch {
    id: ID
    title: String
}

type Product {
    id: ID!
    title: String
}

type Query {
  product(search: ProductSearch!): Product!
  products: [Product!]!
}

在解析器中,您可以处理以下情况:

Query: {
    product: (source, args) => {
        if (args.search.id) {
            // here you have id
            console.log(args.search.id)
        }
        if (args.search.title) {
            // here you have title
            console.log(args.search.title)
        }
    }
}

希望有帮助。