AndyPike
@AndyPike
Программист, full-stack developer.

GraphQL: Причина ошибки «Query fields must be an object...»?

Начал изучать GraphQL.
Но то ли с 24 May 2019 прошло много времени, то ли... не знаю.
Пример автора перепечатан один в один, но у него он транспилится без проблем, а у меня полный затык.

Ругань заключается в: Query fields must be an object with field names as keys or a function which returns such an object. Причём у автора ролика всё работает.

app.js:
const express = require('express');
const { graphqlHTTP } = require('express-graphql'); // кстати, тут в варианте автора тоже не работает, т.к. сейчас импорт из express-graphql надо декомпозировать, сейчас там экспортируется не функция, а объект
const schema = require('../schema/schema');

const app = express();
const PORT = 3005;

app.use('/graphql', graphqlHTTP({
  schema,
  graphiql: true,
}));

app.listen(PORT, err => {
  err ? console.log(err) : console.log('Server started!');
});


schema.js:
const { GraphQLObjectType, GraphQLString, GraphQLSchema } = require('graphql');

const MovieType = new GraphQLObjectType({
  name: 'Movie',
  fields: () => ({
    id: { type: GraphQLString },
    name: { type: GraphQLString },
    genre: { type: GraphQLString },
  }),
});

const Query = new GraphQLObjectType({
  name: 'Query',
  movie: {
    type: MovieType,
    args: { id: { type: GraphQLString } },
    resolve(parent, args) {
    },
  },
});

module.exports = new GraphQLSchema({
  query: Query,
});
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 1
romy4
@romy4
Exception handler
"Query fields must be an object with field name". Так у вас в объекте Query нет свойства fields. Что такое movie оно не понимает и вряд ли поймёт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы