繁体   English   中英

为什么会出现错误“必须提供查询字符串”。express-graphql?

[英]Why I'm getting the error “Must provide query string.” express-graphql?

我从Expressq上的graphql开始。 我收到错误消息“必须提供查询字符串”。 当我访问它的路线时。

这是一个快递应用。 这是我的app.js

 var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); let bodyParser = require('body-parser'); var cors = require('cors'); const graphqlHTTP = require('express-graphql'); const MySchema = require('./schema/schema'); app.use(cors()); app.use(logger('dev')); app.use(bodyParser.urlencoded({extended: true})); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/graphql', graphqlHTTP({ schema: MySchema, graphiql: true, })); 

我的shema是:

 const graphql = require('graphql'); const { GraphQLObjectType, GraphQLString, GraphQLSchema, GraphQLList } = graphql; //MODELS FROM MONGOOSE const Entidad = require('../models/entidad'); //TYPES GRAPHQL const EntidadType = new GraphQLObjectType({ name: 'Entidad', fields : () => ({ id : {type : GraphQLString}, nombre : {type : GraphQLString}, created_at : { type : GraphQLString}, updated_at : { type : GraphQLString}, }) }); //ROOT QUERY const RootQuery = new GraphQLObjectType({ name : 'RootQueryType', fields : { entidad : { type: EntidadType, args: {id:{type: GraphQLString}}, resolve(parent, args){ //code to get data from db return Entidad.findById(args.id); } } } }); module.exports = new GraphQLSchema({ query: RootQuery }); 

我不知道为什么在打开graphiql时出现错误。

我测试了其他示例,并给了我相同的错误,也许有些地方我错过了...。

有想法吗

好吧,我评论了body解析器这一行,并解决了这个问题,另一个问题是因为我在graphql的路由中没有rootValue。 我测试了查询,一切正常。 谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM