GraphQL错误中的“位置”指的是什么?

时间:2019-03-06 19:03:44

标签: graphql prisma-graphql

我正在研究GraphQL节点/ Prisma服务器教程,由于代码中的错误而遇到错误。我已经解决了该错误,但是我想了解该错误消息,特别是locations指的是什么?也就是说,我在第2行第3列有一个location,但是第2行第3列是什么?我的代码中的相关方法(在这种情况下为signup)?我的突变?

// error message 
{
  "data": {
    "signup": null
  },
  "errors": [
    {
      "message": "secretOrPrivateKey must have a value",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "signup"
      ]
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

就像path一样,locations指的是GraphQL文档中发生错误的地方。您可以使用SWAPI GraphQL endpoint之类的东西自己查看。我们可以通过请求一个不存在的字段来触发验证错误:

{
  allFilmz
}

产生的错误具有以下locations数组:

[
  {
    "line": 2,
    "column": 3
  }
]

这是因为有问题的字段位于第2行,从第3列开始。如果我们改为发送:

{allFilmz}

我们得到:

[
  {
    "line": 1,
    "column": 2
  }
]

通常,错误的pathlocations更具信息性,但是如果文档中存在语法错误,则path将不存在-在这种情况下,locations是唯一可用来查找语法错误发生位置的东西。

使用GraphQL Playground时的警告语-与GraphiQL不同,Playground会在发送请求之前删除注释并格式化您的请求,因此locations可能与您在Playground UI中看到的不匹配。