需要帮助来调试此updateLink解析器

时间:2019-07-24 04:23:28

标签: graphql-js

我需要实现一个到我的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"
      ]
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

您在此处引用了名为@ColumnDefault的变量:

id

,但是您没有按错误指示使用该名称定义变量。我建议在项目中添加一个linter,以帮助您捕获类似的错误。