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:必须提供查询字符串的主要内容,如果未能解决你的问题,请参考以下文章
GraphQL“必须提供查询字符串” graphql-tag react-apollo
Apollo Server, Graphql - 必须提供查询字符串