Ошибка: BabelPluginRemoveGraphQL: интерполяция строк - PullRequest
0 голосов
/ 16 ноября 2018

Я получаю ошибку ниже при попытке передать переменную динамически в gatsBy Graphql.

Error

Module build failed (from ./node_modules/gatsby/dist/utils/babel-loader.js):
Error: BabelPluginRemoveGraphQL: String interpolations are not allowed in graphql fragments. Included fragments should be referenced as `...MyModule_foo`.

Запрос

let mytext = 'welcome'
let myQuery = graphql`query($text: String = "${mytext}") {
            allGhostPost : allGhostPost(filter:{title:{eq: $text}}) {
              edges {
                node {
                  id
                  slug
                }
              }
            }
          }`

Пожалуйста, помогите !!!

1 Ответ

0 голосов
/ 16 ноября 2018

Вставка произвольного текста в подобные запросы - это общеизвестная проблема безопасности , и плагин Babel почти наверняка прав, когда запрещает это.GraphQL определяет формат полезной нагрузки JSON-over-HTTP , который позволяет отдельно передавать переменные (закодированные в виде объектов JSON, чтобы минимизировать вероятность атак внедрения).

Вы не показываете, что на самом деле делаетзапрос, но он должен иметь место, чтобы добавить карту переменных GraphQL.(Например, эталонная реализация graphql-js включает параметр variableValues для ее функции верхнего уровня graphql .) Удалите часть запроса = "${mytext}" и вместо этого используйте объект переменных, например{text: mytext}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...