Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 查询GraphQL以基于id或名称查找对象_Node.js_Graphql - Fatal编程技术网

Node.js 查询GraphQL以基于id或名称查找对象

Node.js 查询GraphQL以基于id或名称查找对象,node.js,graphql,Node.js,Graphql,我在我的类型中定义了以下查询。我设置了一个nodejs和expressGraphQL服务器 type Query { product(_id: ID!): Product! products: [Product!]! } 但是,在我的前端,我还希望根据从url派生的标题或唯一字符串请求特定的产品。如何更改product的查询,使其接受ID或标题字符串 您可以构建一个InputType,其中ID和String都是可选的,但需要InputType,然后在解析器中处理这两种情况 比如: in

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

type Query {
  product(_id: ID!): Product!
  products: [Product!]!
}
但是,在我的前端,我还希望根据从url派生的标题或唯一字符串请求特定的产品。如何更改product的查询,使其接受ID或标题字符串

您可以构建一个InputType,其中ID和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)
        }
    }
}
希望有帮助。

是的,这正是我想要的!谢谢