Graphql:必须提供查询字符串

Posted

技术标签:

【中文标题】Graphql:必须提供查询字符串【英文标题】:Graphql: Must provide query string 【发布时间】:2018-01-13 19:09:45 【问题描述】:

我有一个简单的 express graphql 服务器:

const schema = require('./schema');
const express = require('express');
const graphqlHTTP = require('express-graphql');
const cors = require('cors')
const bodyParser = require('body-parser');


const app = express();
app.use(cors());
app.use(bodyParser.urlencoded( extended: true ));
app.use(bodyParser.json());

app.use('/graphql', graphqlHTTP(req => 
  return (
  schema,
  pretty: true,
  )
));

const server = app.listen(9000, err => 
  if (err)  return err; 
  console.log(`GraphQL server running on http://localhost:$9000/graphql`);
);

我的请求看起来像:

有什么帮助吗?

(请不要将其关闭为重复,因为其他帖子没有提供有关用户如何解决它的足够信息)

【问题讨论】:

尝试用schema: schema,替换schema, @ChrisG 如果它不理解语法,它会抛出语法错误。 @ChrisG 在 ES6 中 schema 等价于 schema: schema 。这是语法糖!不过眼光不错:这看起来像个错误。 【参考方案1】:

您需要在 Content-Type 标头中指定 application/json -- 您目前有 text/plain。您已在服务器上包含正文解析器中间件,但它依赖于您的请求中的该标头来了解何时需要将响应实际解析为 JSON。

【讨论】:

你是怎么做到的?

以上是关于Graphql:必须提供查询字符串的主要内容,如果未能解决你的问题,请参考以下文章

Express GraphQL 必须提供查询字符串。

GraphQL“必须提供查询字符串” graphql-tag react-apollo

Apollo Server, Graphql - 必须提供查询字符串

GraphQL 文件上传纯 JS “必须提供查询字符串”。

React 和 Nexus Graphql 服务器上的 Apollo 客户端出现“必须提供查询字符串”错误

“必须提供查询字符串。”石墨烯-蟒蛇