2016-09-14 8 views
1

나는 http://localhost:8080/graphiql에 GraphIQL에서 제대로 작동이 돌연변이를 가지고 :Apollo/GraphQL Mutation은 GraphIQL에서 작동하지만 클라이언트 코드에서는 작동하지 않습니까?

mutation($fromID: String!, $toID: String!, $msgText: String!){ 
    createIM(fromID: $fromID, toID: $toID, msgText: $msgText){ 
    fromID 
    toID 
    msgText 
    } 
} 

QUERY ... 쿼리 VARIABLES

{ 
    "fromID": "1", 
    "toID": "2", 
    "msgText": "Test from GraphIQL #3. It's working!!!" 
} 

가 지금은 코드에서이를 구현해야 .

클라이언트 코드

sendInstantMsg(){ 
    const {textToSend} = this.refs; 
    const {toID} = this.props; 

    const fromID = Meteor.userId(); 
    const msgText = trimInput(textToSend.getValue()); 

    client.query({ 
     query: gql` 
      query mutation($fromID: String!, $toID: String!, $msgText: String!){ 
       createIM(fromID: $fromID, toID: $toID, msgText: $msgText){ 
        fromID 
        toID 
        msgText 
       } 
      } 
     `, 
     variables: { 
      fromID: fromID, 
      toID: toID, 
      msgText: msgText 
     }, 
     forceFetch: false, 
    }).then(({ data }) => { 
     console.log('got data', data); 
    }).catch((error) => { 
     console.log('there was an error sending the query', error); 
    }); 
} 

쿼리 변수 (fromID, 했잖아 및 msgText) 예상대로 함수에 와서, 그러나 아폴로 오류가 발생합니다 :

message: "Network error: Unexpected token < in JSON at position 0"

에게 무엇 내가 빠졌어?

+0

봐 쿼리하지 돌연변이의 mutate 사용해야합니다 .. 대신 시도하십시오 - 당신은 거기에서 요청을 볼 수 있습니까? 어떤 URL에 도달했는지, 반환 값은 무엇입니까? – stubailo

+0

요청 URL : http : // localhost : 3000/graphql. Referer : http : // localhost : 3000/create_im/572bddac4ecbbac0ffe37fdf. 요청 페이로드 : { "query": "쿼리 변이 ($ fromID : String !, $ toID : String !, $ msgText : String!) {\ n createIM (fromID : $ fromID, toID : $ toID, msgText : $ msgText) { "fromID": "s9trFBxQcpaCjnon2", "toID": "572bddac4ecbbac0ffe37fdf", "msgText": "Testing 123"} {\ n ID \ n부터 ID \ n 메시지 \ n} \ n} , "operationName": "mutation"}. 어디에서 반환 값을 찾을 수 있습니까? – VikR

+0

인용 된 코드가 들어있는 파일에서 'apollo-client'의'import ApolloClient '를 통해 ApolloClient에 접근한다. const client = new ApolloClient();'. 이전에 정의 된 해결 자에 액세스 할만큼 충분합니까? – VikR

답변

1

당신이 ... 크롬 네트워크 탭에서

client.mutate({ 
      mutation: gql` 
       mutation createIM($fromID: String!, $toID: String!, $msgText: String!){ 
        createIM(fromID: $fromID, toID: $toID, msgText: $msgText){ 
         fromID 
         toID 
         msgText 
        } 
       } 
      `, 
      variables: { 
       fromID: fromID, 
       toID: toID, 
       msgText: msgText 
      }, 
      forceFetch: false, 
     }).then(({ data }) => {