1

以下のように、Apollo Client を使用して非 Apollo GraphQL サーバーにリクエストを送信しようとしました。

import ApolloClient, { createNetworkInterface } from 'apollo-client';

// Register gql globally
import { registerGqlTag } from 'apollo-client/gql';
registerGqlTag();

const networkInterface = createNetworkInterface(' http://localhost:8080/graphql', {
  headers: {
  'Content-type': "application/json"
  }
});

var client = new ApolloClient({
  networkInterface
});

client.query({
  query: gql`
    query getTodo($todoId: Int!) {
      node(id: $todoId) {
        ... on Todo {
          id
          text
        }
      }
    }
  `,
  variables: {
    todoId: "todo:100000",
  },
  forceFetch: false,
}).then((graphQLResult) => {
  var errors  = graphQLResult.errors;
  var data = graphQLResult.data;

  if (data) {
    console.log('got data', data);
  }

  if (errors) {
    console.log('got some GraphQL execution errors', errors);
  }
}).catch((error) => {
  console.log('there was an error sending the query', error);
});

ただし、コードの実行中にエラーが発生し続けます。 there was an error sending the query [ReferenceError: fetch is not defined]

それに関連する問題を検索しようとしましたが、ドキュメントはあまり役に立ちません。

前にありがとう。

4

2 に答える 2

3

バックグラウンドで、Apollo クライアントはfetch、http リクエストの作成に関する新しい標準であるこれを使用します。ほとんどの主要なブラウザーに存在しますが、ノードまたは IE / Edge にはありません。チームは、フェッチの採用が拡大しており、古いブラウザとノードでポリフィルが利用できるようになったため、フェッチを使用するよう呼びかけました。

この問題に関するドキュメントにセクションを追加しました: http://docs.apollostack.com/apollo-client/core.html#fetch-polyfill

フェッチを使用する決定についての洞察については、この問題を確認してください: https://github.com/apollostack/apollo-client/pull/126

于 2016-05-10T11:58:55.553 に答える