首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用graphql-js解析填充variableDefinitions

用graphql-js解析填充variableDefinitions
EN

Stack Overflow用户
提问于 2022-10-27 17:27:27
回答 1查看 13关注 0票数 0

我正在处理一些后端graphQL代码,并使用来自graphql-jsparse,我似乎无法填充仍然是空数组的variableDefinitions字段。

示例:

代码语言:javascript
复制
parse(`{ x(id: $id) { id } }`)

我希望$id被识别为一个变量。它在文档树中显示为变量,但不在variableDefinitions中。

代码语言:javascript
复制
 "definitions": [
    {
      "kind": "OperationDefinition",
      "operation": "query",
      "variableDefinitions": [],
      "directives": [],
      "selectionSet": {
        "kind": "SelectionSet",
        "selections": [
          {
            "kind": "Field",
            "name": {
              "kind": "Name",
              "value": "x",
              "loc": {
                "start": 2,
                "end": 3
              }
            },
            "arguments": [
              {
                "kind": "Argument",
                "name": {
                  "kind": "Name",
                  "value": "id",
                  "loc": {
                    "start": 4,
                    "end": 6
                  }
                },
                "value": {
                  "kind": "Variable",
                  "name": {
                    "kind": "Name",
                    "value": "id",
                    "loc": {
                      "start": 9,
                      "end": 11
                    }
                  },
                  "loc": {
                    "start": 8,
                    "end": 11
                  }
                },
                "loc": {
                  "start": 4,
                  "end": 11
                }
              }
            ],
            "directives": [],
            "selectionSet": {
              "kind": "SelectionSet",
              "selections": [
                {
                  "kind": "Field",
                  "name": {
                    "kind": "Name",
                    "value": "id",
                    "loc": {
                      "start": 16,
                      "end": 18
                    }
                  },
                  "arguments": [],
                  "directives": [],
                  "loc": {
                    "start": 16,
                    "end": 18
                  }
                }
              ],
              "loc": {
                "start": 14,
                "end": 20
              }
            },
            "loc": {
              "start": 2,
              "end": 20
            }
          }
        ],
        "loc": {
          "start": 0,
          "end": 23
        }
      },
      "loc": {
        "start": 0,
        "end": 23
      }
    }
  ]
}

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-27 22:14:12

查询不是定义变量。变量定义在查询名称之后。

代码语言:javascript
复制
query myQuery($id: ID!) {
             ^^^^^^^^^^ definitions
  x(id: $id) { id }
   ^^^^^^^^^ arguments + variable references
}

您的当前查询不会被任何GraphQL服务器接受,因为您的变量$id没有定义。您也可以省略名称。

代码语言:javascript
复制
parse(`query ($id: ID!){ x(id: $id) { id } }`)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74226032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档