Я начинаю с 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,
}));И моя шема:
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.
Я тестирую другие примеры и выдаю ту же ошибку, возможно, я что-то пропустил ...
Какая-то идея?
Хорошо, я обновил пост, теперь вы можете видеть промежуточное ПО. Я использую боди-парсер
Теперь прокомментирую строку app.use (bodyParser.urlencoded ({extended: true})); и я вижу корневой запрос в проводнике документации, но теперь я получаю сообщение об ошибке {"errors": [{"message": "Syntax Error: Unexpected <EOF>", "locations": [{"line": 29, "столбец": 1}]}]}
Привет @DanielRearden, я сталкиваюсь с той же ошибкой, когда пытаюсь получить доступ к graphql с помощью лямбда-функции AWS.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ну, я прокомментировал строку body-parser и исправил проблему, другая проблема в том, что у меня нет rootValue в маршруте graphql. Я проверил запросы, и все в порядке. Спасибо.
Используете ли вы на своем сервере другое промежуточное ПО? Если это так, было бы полезно увидеть и этот код, поскольку промежуточное ПО, такое как
body-parser, может нарушить логику промежуточного ПОexpress-graphql.