Express Graphql柱体“;必须提供查询字符串。”;

Express Graphql柱体“;必须提供查询字符串。”;,express,graphql,graphql-js,Express,Graphql,Graphql Js,我使用Express graphql中间件。 我在正文行中发送以下请求: POST /graphql HTTP/1.1 Host: local:8083 Content-Type: application/graphql Cache-Control: no-cache Postman-Token: d71a7ea9-5502-d5fe-2e36-0ae49c635a29 { testing { pass(id: 1) { idn } } }

我使用Express graphql中间件。 我在正文行中发送以下请求:

POST /graphql HTTP/1.1
Host: local:8083
Content-Type: application/graphql
Cache-Control: no-cache
Postman-Token: d71a7ea9-5502-d5fe-2e36-0ae49c635a29

{
   testing {
      pass(id: 1) {
        idn
      }
    }
}
并且有错误

{
  "errors": [
    {
      "message": "Must provide query string."
    }
  ]
}

在graphql中,我可以在URL中发送更新

URL字符串太短。我必须发送更新模型,如

mutation {
  update(id: 2, x1: "zazaza", x2: "zazaza", x3: "zazaza" ...(more more fields)...) {
    idn
  }
}

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

Post请求需要管理标题信息

  • 使用Http客户端:内容类型应用程序/json

  • 使用Postman客户端:内容类型应用程序/graphql

  • 但请求体看起来像字符串

    {"query":"mutation{update(id:1,x1:\"zazaz\",x2:\"zazaz\"......){id x1 x2}}"}
    

    如果您使用的是graphql,并且希望使用postman或任何其他Rest客户端对其进行测试,请执行此操作

    在postman中,选择
    POST
    方法,输入您的
    URL
    ,并将
    内容类型设置为
    application/graphql
    ,然后将查询传递到正文中

    例如:

    http://localhost:8080/graphql
    Mehtod: POST
    Content-Type: application/graphql
    Body: 
      query{
        FindAllGames{
        _id
        title
        company
        price
        year
        url
       }
     }
    
    就这样,你会得到回应的


    将内容类型切换为JSON。
    像这样

    使用邮递员版本7.2.2我也遇到了类似的问题。此版本的Postman支持现成的Graphql。将内容类型更改为
    application/json
    为我修复了它。

    这通常发生在“express graphql”未收到任何参数时。您需要在应用程序中添加json/applicaton解析器


    例如-
    app.use(bodyParser.json());//application/json

    对我来说的工作方式如下:

    体内

    在标题中

    不要忘记在车身设置上标记GraphQl[x]

    在把动词改为POST之前是如何被引用的

  • 转到相关网页并打开“检查”(通过写入单击-> 检查| | Ctrl+Shift+I(铬)

  • 转到“网络”选项卡并复制cURL命令

  • 打开邮递员,然后导入->原始文本

  • 粘贴复制的命令

  • 然后,继续->


  • “在graphql中,我可以在URL中发送更新。”我正在使用“邮递员”发送请求。您需要将邮递员标题中的“内容类型”更改为“应用程序/json”,并在请求正文中使用带有“查询”和“graphql变量”的“graphql”选项卡。您正在使用的请求测试仪是什么?请为您的答案提供一些注释。它不是json。它唯一的“查询”:“graphQL查询字符串”,它不正确。我们必须发送有效的JSON,但不能这样做bodyParser从何而来,常见,这里要彻底,什么库?