Начал изучать 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,
});