我需要实现一个到我的graphQL服务器的updateLink,但是它不断抛出“未定义ID”错误。该服务器还没有数据库,只有一个练习用的数组。
我已经定义了用于更新突变的模式,还编写了解析器,但是它没有用。我查看了阿波罗文档,看来我的解析器和模式是正确的。
以下是解析器
updateLink:(parent,args)=>{
const link = {
id:args.id,
description:args.description,
url:args.url,
}
links[Number(id)]=link
return link
}
},
以下架构
type Query {
info: String!
feed: [Link!]!
link(id:ID!):Link
}
type Mutation {
post(url: String!, description: String!): Link!
updateLink(id:ID!,url:String!, description: String!): Link
delete(id:ID!):Link
}
type Link {
id: ID!
description: String!
url: String!
}
预期结果应该是链接阵列服务器的更新,但是我得到了以下错误。
{
"data": {
"updateLink": null
},
"errors": [
{
"message": "id is not defined",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"updateLink"
]
}
]
}
答案 0 :(得分:0)
您在此处引用了名为@ColumnDefault
的变量:
id
,但是您没有按错误指示使用该名称定义变量。我建议在项目中添加一个linter,以帮助您捕获类似的错误。