Невозможно получить функции от apollo-server-express - PullRequest
0 голосов
/ 08 сентября 2018

Я следую руководству и пытаюсь запустить сервер узлов, и я не могу импортировать его в функции из пакета Apollo

const {graphqlExpress, graphiqlExpress} = require('apollo-server-express'); // here i importing fucntions
const bodyParser = require('body-parser'); // import parser
const cors = require('cors'); // import cors
const express = require('express'); // import cors
const { makeExecutableSchema } = require('graphql-tools');

const port = 9000; // define port

const schema = makeExecutableSchema({typeDefs, resolvers}); // init shcema

const app = express();
app.use(cors(), bodyParser.json());
app.use('/graphql', graphqlExpress({schema})); // is not a function
app.use('/graphiql', graphiqlExpress({endpointUrl: '/graphql'})); // is not a function
app.listen(port, () => console.log(`Server is running on the port ${port}`));

Когда я запускаю сервер, если происходит сбой из-за "graphqlExpress не является функцией", и когда он прокомментировал и сервер перезапустил то же самое с graphiqlExpress. Может быть, учебник, которому я следую, устарел, и apollo-server-express больше не предоставляет такие функции?

1 Ответ

0 голосов
/ 08 сентября 2018

Apollo Server 2.0 внес ряд существенных изменений с целью упрощения настройки. В документации есть руководство по миграции , в котором описаны изменения. Если все, что вам нужно, это сервер GraphQL, начать работу можно так просто:

const { ApolloServer, gql } = require('apollo-server');

const server = new ApolloServer({ typeDefs, resolvers });
server.listen()

Обратите внимание, что выше просто используется пакет apollo-server. apollo-server-express все еще существует, если вы хотите продолжать использовать Apollo в качестве промежуточного программного обеспечения Express вместо использования Apollo в качестве "автономного" сервера.

const { ApolloServer, gql } = require('apollo-server-express');
const app = require('express')();

const server = new ApolloServer({ typeDefs, resolvers });
server.applyMiddleware({ app });
app.listen({ port: 3000 })

Новый API избавляет от необходимости отдельно импортировать и внедрять дополнительное промежуточное ПО, такое как body-parser или cors. Прочтите документы для получения дополнительной информации о настройке экземпляра сервера Apollo.

...