2016-05-05 4 views
1

から非アポロGraphQLサーバーから照会することができません:私は、コードの実行中にエラーを得続けるしかし私は以下のような非アポロ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]

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

ありがとうございます。

+0

私はこの問題に関連アポロメンバーからの応答を得た、https://github.com/apollostack/apollo-client/issues/177 –

答えて

3

舞台裏では、Apolloクライアントはhttp要求を行うための新しい標準であるfetchを使用します。これは、ほとんどの主要なブラウザーに存在しますが、ノードまたはIE/Edgeには見つかりません。チームは、採用が増えているため、古いブラウザやノード用のポリフィルを利用できるため、フェッチを行うように求めました。

ここではこの問題の周りのドキュメントにセクションを追加しました:この問題をチェックし、フェッチして行くことを決定いくつかの洞察についてhttp://docs.apollostack.com/apollo-client/core.html#fetch-polyfill

を:https://github.com/apollostack/apollo-client/pull/126

+0

現在discuをここにはhttps://github.com/apollostack/apollo-client/issues/269とhttps://github.com/apollostack/apollo-client/issues/645 (James '答えは死んでいる) – Michiel

1

あなたはノード環境で作業している場合あなたはglobalオブジェクトにフェッチ追加する必要があります。

import fetch from 'node-fetch'; 

global.fetch = fetch; 
関連する問題