- Создание сервера Apollo в соответствии с курсом udemy mirkonasato
- Создайте папку сервера GraphQL и файл package.json
- Установите apollo-server и graphql с помощью NPM
- Создайте и запустите файл server.js, но импорт и ожидание gql не удается.
- Попробуйте использовать apollo-server-express, который используется в 3 раза чаще.
Создание сервера Apollo в соответствии с курсом udemy mirkonasato
https://www.udemy.com/course/graphql-by-example/learn/lecture/31830022?start=0#overview
Создайте папку сервера GraphQL и файл package.json
Создайте папку gq1/ и внутри нее папку server/.
Создайте файлы в этом.
Создайте файл package.json и
{
"name": "gq1",
"private": true,
"type": "module"
}
Заполните имя, частное и тип
Установите apollo-server и graphql с помощью NPM
npm i apollo-server graphql
Создайте и запустите файл server.js, но импорт и ожидание gql не удается.
https://github.com/mirkonasato/graphql-hello-world/blob/main/server/server.js
Если вы последуете этому исходному коду и запустите его
node server/server.js
const { url } = await server.listen({ port: 9000 });
^^^^^
SyntaxError: Unexpected reserved word
ожидание приходит с неожиданным зарезервированным словом.
Я интерпретировал это как то, что его можно использовать только в async.
Если вы удалите это ожидание и запустите исходный код, вы получите
import { ApolloServer, gql } from 'apollo-server';
^^^
SyntaxError: The requested module 'apollo-server' does not provide an export named 'gql'
Сервер apollo выдаст сообщение об ошибке, если вы не поставите gql.
См. https://github.com/apollographql/apollo-server/issues/1356
Я просмотрел вопросы, но не смог найти решение.
Попробуйте использовать apollo-server-express, который используется в 3 раза чаще.
Некоторые исследования показывают, что обычно это не apollo-server, а apollo-server-express.
apollo-server-express использовался для обеспечения gql.
https://npmtrends.com/apollo-server-vs-apollo-server-express-vs-express-graphql-vs-graphql-yoga-vs-prisma
Проверяя тенденции, мы обнаружили, что
apollo-server-express составляет 1,4М, а apollo-server-express — 0,5М.
apollo-server-express составляет 1,4М, тогда как apollo-server-express — всего 0,5М.
Поэтому я решил использовать apollo-server-express.
import { ApolloServer, gql } from 'apollo-server-express';
^^^
SyntaxError: The requested module 'apollo-server-express' does not provide an export named 'gql'
-express также выдал ту же ошибку.
Поэтому я сдался и начал создавать среду с помощью официального руководства на apollographql.com.