graphql площадка странно бегает по героку - PullRequest
0 голосов
/ 22 сентября 2018

Итак, у меня есть сервер apollo, работающий с использованием apollo-server-express:

const PORT = process.env.PORT || 8000
const graphqlPath = process.env.GRAPHQL || 'graphql'
const app = express()

app.use(cors())
app.use(bodyParser.text({ type: 'application/graphql' }))

const gqlServer = new ApolloServer({
  typeDefs: schema,
  resolvers,
  context: {
    me: users[1]
  },
  debug: true,
  tracing: true
})

gqlServer.applyMiddleware({ app, path: `/${graphqlPath}` })

app.listen(PORT, () => console.log(`graphql listening on port ${PORT}`))

module.exports = app

он отлично работает на локальном хосте, но при развертывании его на heroku становится странно, когда я запускаю игровую площадку:

  • он говорит, что сервер не может быть достигнут
  • Я не могу получить схему
  • запросы выполняются (иногда), и сразу после того, как я вижу результат, он меняется на этоjson объект ошибки
  • когда я копирую запрос curl и запускаю его на своем терминале, я всегда получаю результат без проблем

enter image description here

Вот пример ошибок консоли:

POST400 (неверный запрос)
Ошибка: ответ не выполнен: получен код состояния 400

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

добавление introspection: true к новому объекту ApollowServer решит проблему

0 голосов
/ 13 октября 2018

Попробуйте добавить самоанализ и игровую площадку в конфигурацию ApolloServer и установите значение true.Они автоматически отключаются, когда среда Node настроена на работу, но таким образом вы можете включить ее в prod.Справка: https://www.apollographql.com/docs/apollo-server/v2/features/graphql-playground.html#Enabling-GraphQL-Playground-in-production

const gqlServer = new ApolloServer({
  typeDefs: schema,
  resolvers,
  context: {
    me: users[1]
  },
  debug: true,
  tracing: true,
  introspection: true,
  playground: true
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...