Как я могу исправить ошибку graphql: должен предоставить документ? - PullRequest
0 голосов
/ 06 июня 2019

Я использую graphql-yoga .Мой запрос работает в GraphiQL и curl, но не работает, когда я отправляю их в React.

Вот ошибка, которую я получаю:

Error: Must provide document
    at invariant (.../node_modules/graphql/jsutils/invariant.js:21:11)
    at Object.validate (.../node_modules/graphql/validation/validate.js:53:41)
    at doRunQuery (.../node_modules/apollo-server-core/dist/runQuery.js:111:42)
    at .../node_modules/apollo-server-core/dist/runQuery.js:21:56
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
    at async Promise.all (index 0)

Когда я отправляю CURL, он работает:

curl 'http://localhost:4000/graphql' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: http://localhost:4000' -H 'Authorization: XXX' --data-binary '{"query":"query { get_me { user { email } }}"}' --compressed

но когда я добавляю его в приложение React, оно не:

export const myQuery = () => ({
  url: 'http://localhost:4000/graphql',

  options: {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'ABC',
    },
  },

  body: {
    data: '{"query":"get_user { user { email } }"}',
  },

1 Ответ

0 голосов
/ 06 июня 2019

Я понял проблему: я должен использовать

body: {
    query: 'query { get_user { user { email } } }',
  },

вместо

body: {
    data: '{"query":"get_user { user { email } }"}',
  },
...