9

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

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

1 回答 1

9

就像path,locations指的是 GraphQL 文档中发生错误的位置。您可以使用类似SWAPI GraphQL 端点之类的东西亲眼看到这一点。我们可以通过请求一个不存在的字段来触发验证错误:

{
  allFilmz
}

产生的错误有这个locations数组:

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

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

{allFilmz}

我们得到:

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

通常,path错误的 将比 提供更多信息locations,但当path文档中存在语法错误时,错误将不存在——在这种情况下,locations您可以使用唯一的方法来追踪发生语法错误的位置。

如果使用 GraphQL Playground,请注意——与 GraphiQL 不同,Playground 会在发送之前删除评论并格式化您的请求,因此locations可能与您在 Playground UI 中看到的不匹配。

于 2019-03-06T19:39:51.010 回答