【问题标题】:Missing field in Apollo GraphQL QueryApollo GraphQL 查询中缺少字段
【发布时间】:2020-05-05 11:26:11
【问题描述】:

我正在使用 Apollo 和 F# 后端的 react。

当我进行查询时,我收到与此类似的错误,但我不确定为什么响应中似乎存在故事。

Missing field stories in "{\"stories\":[{\"name\":\"Story1\",\"__typename\":\"Story\"},{\"name\":\"Story2\",\"__typename\":\

我的查询代码是:

const client = new ApolloClient({
    uri: '/graphql',
});

client
    .query({
        query: gql`
      query testStoryQuery
    {

        stories
        {
            name

        }

    }
    `
    })
    .then(result => console.log(result));

最后服务器返回的原始响应是:


{"data":"{\"stories\":[{\"name\":\"Story1\",\"__typename\":\"Story\"},{\"name\":\"Story2\",\"__typename\":\"Story\"},{\"name\":\"Story3\",\"__typename\":\"Story\"}]}"}

到目前为止,我唯一尝试过的是将字段周围的响应(即“)json化,但它似乎并没有找到该字段。

更新(额外信息)

完整的堆栈跟踪

任何帮助将不胜感激,与此同时,我将继续努力。

谢谢你:)

【问题讨论】:

  • 您能提供您的架构吗?老实说,看起来您实际上已解决了任何问题,只是没有刷新页面,否则您将得到 400 而不是完整的响应
  • @DanielRearden 我可以通过失眠和邮递员正常查询它(请原谅我不知道如何让 GraphQLi 工作)。我已经用堆栈跟踪更新了这个问题。感谢您的建议。根据上面的客户端代码,它只是为了记录,代码基于 apollo-boost 入门代码。查看堆栈跟踪后,似乎是 writeToStore 的问题,正在努力找出原因。
  • @Deryck 我不确定以什么格式发布架构。就像定义它的 F# 代码一样?该模式只有一个查询故事,其中一个字段是“名称”。

标签: javascript graphql apollo


【解决方案1】:

错误的响应格式:

{"data":____"____{\"stories\":[{\"name\":\"Story1\",\"__typename\":\"Story\" },{\"name\":\"Story2\",\"__typename\":\"Story\"},{\"name\":\"Story3\",\"__typename\":\"Story \"}]}____"____}

这样数据是一个字符串,而不是对象。

在堆栈跟踪中也有错误的名称\r\n\t\t\t\t__typename

有关更多详细信息,请运行一些工作示例(任何 apollo 客户端项目)并使用浏览器调试器断点比较传递给 writeToStore.ts 方法的参数。

【讨论】:

    猜你喜欢
    • 2021-07-15
    • 2019-04-18
    • 2019-02-22
    • 2018-03-10
    • 2021-07-02
    • 2019-06-13
    • 2018-10-19
    • 1970-01-01
    • 2021-05-04
    相关资源
    最近更新 更多