Как импортировать запрос GraphQL в виде строки вместо объекта - PullRequest
0 голосов
/ 19 января 2020

Я создал файл .gql для своего запроса и импортирую его так:

const query = require("@/hello.gql");

Однако, если я записываю переменную query в консоль, он показывает объект, не строка Что я могу сделать, чтобы мой импортированный запрос был просто строкой?

Ответы [ 2 ]

0 голосов
/ 19 января 2020

При запросе к серверу с использованием apollo-client предоставленный параметр query должен быть объектом типа DocumentNode, который представляет собой AST-представление запроса. Другими словами, если вы используете apollo-client, вы не можете просто передать ему запрос в виде строки, вы должны сначала проанализировать его. Обычно это делается с помощью библиотеки graphql-tag. также можно сделать автоматически через веб-пакет, используя загрузчик, такой как graphql-tag или graphql-loader. Если вы используете такой загрузчик, то любые импортированные вами .gql файлы будут автоматически разбиты на DocumentNode объекты для вас.

Если вы не , используя apollo-client, нет необходимости использовать эти погрузчики. Если вы все еще хотите хранить свои запросы в отдельных файлах и импортировать их как строки, вам следует использовать другой загрузчик, например, raw-loader .

0 голосов
/ 19 января 2020

Потому что вы только импортируете запрос, но не используете его.

Вы можете использовать apollo, чтобы использовать этот запрос, как этот

const yourQuery= require("@/hello.gql");

data(){
 return {
    queryResponse: []  
  }
}

apollo: {
    queryResponse: {
      prefetch: true,
      query: yourQuery
    }
  }

При этом вы получаете запрос и сохранить ответ в queryResponse

...