【问题标题】:What does 'locations' refer to in GraphQL errors?GraphQL 错误中的“位置”指的是什么?
【发布时间】:2019-07-28 13:13:41
【问题描述】:

我正在学习 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"
      ]
    }
  ]
}

【问题讨论】:

    标签: graphql prisma-graphql


    【解决方案1】:

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

    {
      allFilmz
    }
    

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

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

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

    {allFilmz}
    

    我们得到:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      相关资源
      最近更新 更多