Неудачная попытка создать сервер с импортом и ожиданием в соответствии с курсом Мирко по GraphQL Udemy


Создание сервера 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.


Оцените статью
devanswers.ru
Добавить комментарий