Невозможно получить функции от apollo-server-express

Я следую руководству и пытаюсь запустить сервер узла, и я не могу импортировать его в функции из пакета 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.info(`Server is running on the port ${port}`));

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

Поведение ключевого слова "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) для оценки ваших знаний,...
12
0
6 692
1

Ответы 1

В 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 Server.

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