Я пишу сценарий, который запускает экспресс-сервер с graphql. Я использую ES5.
Вот мой код server.js (для запуска сервера Express):
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const {graphqlExpress, graphiqlExpress} = require('apollo-server-express');
const schemaTest = require('./schemas/schema');
const app = express();
app.listen(4000, () => { console.info("Listening on 4000")});
app.use('/graphql', bodyParser.json(), graphqlExpress({schemaTest}));
app.use('/graphiql', graphiqlExpress({endpointURL: '/graphql'}));
и вот код моего schema.js
const {makeExecutableSchema, addMockFunctionsToSchema} = require('graphql-tools');
const typeDefs = `type Query {
greeting: String
}
`;
const schema = makeExecutableSchema({typeDefs});
addMockFunctionsToSchema({ schema });
module.exports = schema;
однако я получаю это isse:
Error: Expected undefined to be a GraphQL schema.
и я не могу найти, где моя ошибка.
К вашему сведению, если я скопирую и вставлю свой код schema.js в файл server.js, он будет работать правильно, это похоже на то, что я неправильно импортирую (или экспортирую) файл схемы.
Где моя ошибка





graphqlExpress ожидает, что ему будет передан объект конфигурации с одним из свойств этого объекта schema. Итак, ваш код должен выглядеть примерно так:
app.use('/graphql', bodyParser.json(), graphqlExpress({
schema: schemaTest,
}));
В настоящее время вы передаете объект со свойством schemaTest, но не со свойством schema.