我正在处理一些后端graphQL代码,并使用来自graphql-js的parse,我似乎无法填充仍然是空数组的variableDefinitions字段。
示例:
parse(`{ x(id: $id) { id } }`)我希望$id被识别为一个变量。它在文档树中显示为变量,但不在variableDefinitions中。
"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
}
}
]
}我遗漏了什么?
发布于 2022-10-27 22:14:12
查询不是定义变量。变量定义在查询名称之后。
query myQuery($id: ID!) {
^^^^^^^^^^ definitions
x(id: $id) { id }
^^^^^^^^^ arguments + variable references
}您的当前查询不会被任何GraphQL服务器接受,因为您的变量$id没有定义。您也可以省略名称。
parse(`query ($id: ID!){ x(id: $id) { id } }`)https://stackoverflow.com/questions/74226032
复制相似问题