当前位置: 首页 > 知识库问答 >
问题:

Github GraphQL错误:必须指定查询属性并且必须是字符串

潘银龙
2023-03-14
const query = `{
  repository(
    owner: "PrivateOrg"
    name: "privateRepoName"
  ) {
    name
    forkCount
    forks(
      first: 11
      orderBy: { field: NAME, direction: DESC }
    ) {
      totalCount
      nodes {
        name
      }
    }
  }
}`
const querytwo = `{
  repository(
    owner: "mongodb"
    name: "docs-bi-connector"
  ) {
    name
    forkCount
    forks(
      first: 27
      orderBy: { field: NAME, direction: DESC }
    ) {
      totalCount
      nodes {
        name
      }
    }
  }
}`

除了查询之外,两者的提取看起来完全相同:

  fetch('https://api.github.com/graphql', {
  method: 'POST',
  body: JSON.stringify({query}),
  headers: {
    'Authorization': `Bearer ${accessToken}`,
  },
}).then(res => res.text())
  .then(body => console.log(body))
  .catch(error => console.error(error));
  console.log("\n\n\n");

    fetch('https://api.github.com/graphql', {
      method: 'POST',
      body: JSON.stringify({querytwo}),
      headers: {
        'Authorization': `Bearer ${accessToken}`,
      },
    }).then(res => res.text())
      .then(body => console.log(body))
      .catch(error => console.error(error));
    console.log("\n\n\n");

第一个查询返回: 

{"data":{"repository":{"name":"mms-docs","forkCount":26,"forks":{"totalCount":8,"nodes":[{"name":"mms-docs"},{"name":"mms-docs"},{"name":"mms-docs"},{"name":"mms-docs"},{"name":"mms-docs"},{"name":"mms-docs"},{"name":"mms-docs"},{"name":"mms-docs"}]}}}}

但第二个查询返回错误:

{"errors":[{"message":"A query attribute must be specified and must be a string."}]}
const querytwo = `query: {
      repository(
        owner: "mongodb"
        name: "docs-bi-connector"
      ) {
        name
        forkCount
        forks(
          first: 27
          orderBy: { field: NAME, direction: DESC }
        ) {
          totalCount
          nodes {
            name
          }
        }
      }
    }`;

但我得到了同样的错误

共有1个答案

戴浩初
2023-03-14

速记对象符号错误

JSON.stringify({query})

json.stringify({query:query})的简写

它变成了

{
query: 
 {
      repository(
        owner: "PrivateOrg"
        name: "privateRepoName"
      ) {
        name
        forkCount
        forks(
          first: 11
          orderBy: { field: NAME, direction: DESC }
        ) {
          totalCount
          nodes {
            name
          }
        }
      }
    }
   }`
{
querytwo: 
 {
      repository(
        owner: "PrivateOrg"
        name: "privateRepoName"
      ) {
        name
        forkCount
        forks(
          first: 11
          orderBy: { field: NAME, direction: DESC }
        ) {
          totalCount
          nodes {
            name
          }
        }
      }
    }
   }`
 类似资料:
  • 我是Liquibase的新手,我尝试将liquibase与postgres数据库一起使用liquibase脚本创建数据库表。我所做的是,我已经手动创建了Postgres表并通过运行命令 mvn液化酶:generateChangeLog 我创建了liquibase-outputChangeLog.xml文件。现在我尝试更新该脚本并在数据库中创建一个表。为此,我将XML代码写入新表的ChangeLog

  • 我是阿帕奇骆驼的新手。我正试图将头和请求体一起发送到Apache Camel中的路由。 我得到以下错误:

  • 问题内容: 我在PHP代码的顶部添加了以下几行,但是会引发错误: 致命错误:函数名称必须是第2行/home/reg.php中的字符串 我尝试过:。cookie已成功设置并且可用。使用时为什么会给我一个错误? 问题答案: 应该是,不是 是一个数组,而不是一个函数。

  • 我想它一定是在请求体。我如何发送‘更新’查询或我做错了?

  • 我想它一定在请求的身体里。我如何发送“更新”查询或我做错了?

  • 问题内容: 这是我先前问题的跟进。我正在尝试查看是否已使用电子邮件。 我正在用线 我的数据库中有一封电子邮件test1@test.com。com崩溃之前,应用程序崩溃并给出错误提示 我看到很多有关检查用户名的帖子,但是我的应用程序没有用户名,只有电子邮件。我可以通过以下方式使用电子邮件吗? 问题答案: Firebase密钥不能包含(点)字符。如果要在密钥中存储电子邮件地址,则必须对其进行编码。常用