【问题标题】:using loop/foreach on args from graphQL's resolvers?在graphQL解析器的参数上使用循环/foreach?
【发布时间】:2019-06-19 20:35:48
【问题描述】:

我想知道是否可以在 graphQL 解析器的“args”上循环?

我希望能够自动处理参数,目标是动态修改 SQL 查询的限制。

例如:

  query  {
  getPerson(firstName: "Jane", lastName: "Doe") {
    someElement
  }
}

在这里,我想在解析器中执行 SQL 查询,例如:

SELECT * 
FROM persons
WHERE firstName = "Jane" 
AND lastName = "Doe"

但是当我的查询是:

  query  {
  getPerson(firstName: "Jane", lastName: "Doe", email: "a.b@gmail.com") {
    someElement
  }
}

我想:

SELECT * 
FROM persons
WHERE firstName = "Jane" 
AND lastName = "Doe"
AND email = "a.b@gmail.com"

那么,有类似的东西吗? :

foreach different args
   add "AND ... " to my Query's String

【问题讨论】:

    标签: node.js graphql


    【解决方案1】:

    您可以将每个参数设为可选,然后检查它是否已给出并将其包含在您的查询中。但是由于您没有向我们提供您的解析器,我们无法提供所需的更改。

    【讨论】:

    • 我的目标是做自动处理,因为如果我可以有 20 个参数,我不想做 20 个 if(args.element != undefined) { ... } 反正我发现解决方案,args 就像 JS 中的任何对象一样,因此您可以对其进行循环: for (var property in args) { if (args.hasOwnProperty(property)) { // 这里,“property”等于 firstName/lastName 等// 这里,args[property] 等于 Jane, Doe 等 } }
    猜你喜欢
    • 1970-01-01
    • 2017-03-25
    • 2022-12-07
    • 2014-06-18
    • 2011-08-17
    • 1970-01-01
    • 2018-10-21
    • 2015-02-26
    • 2017-04-09
    相关资源
    最近更新 更多