Почему я получаю сообщение об ошибке «Необходимо предоставить строку запроса». экспресс-graphql?

Я начинаю с 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.

Я тестирую другие примеры и выдаю ту же ошибку, возможно, я что-то пропустил ...

Какая-то идея?

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

Daniel Rearden 24.12.2018 16:46

Хорошо, я обновил пост, теперь вы можете видеть промежуточное ПО. Я использую боди-парсер

Yoedusvany Hdez 24.12.2018 17:06

Теперь прокомментирую строку app.use (bodyParser.urlencoded ({extended: true})); и я вижу корневой запрос в проводнике документации, но теперь я получаю сообщение об ошибке {"errors": [{"message": "Syntax Error: Unexpected <EOF>", "locations": [{"line": 29, "столбец": 1}]}]}

Yoedusvany Hdez 24.12.2018 17:13

Привет @DanielRearden, я сталкиваюсь с той же ошибкой, когда пытаюсь получить доступ к graphql с помощью лямбда-функции AWS.

Jay Sojitra 11.07.2019 09:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
2 334
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ну, я прокомментировал строку body-parser и исправил проблему, другая проблема в том, что у меня нет rootValue в маршруте graphql. Я проверил запросы, и все в порядке. Спасибо.

Другие вопросы по теме