Как использовать ember-apollo-client? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь использовать graphql через apollo-client.На внешнем интерфейсе есть Ember, на бэкенде у нас есть django и сервер graphql, реализованные в этом руководстве (https://www.howtographql.com/graphql-python/0-introduction/). Приложение Ember на порте 4200, сервер graphql проксируется на 8000 / graphql (ember s --proxy http://localhost:8000)

Я пытался следовать этому руководству (https://www.howtographql.com/ember-apollo/1-getting-started/),, но без Graphcool, потому что у нас есть бэкэнд.

В контроллере signup.js у меня есть

import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import Mutation from '../gql/mutation';

Я ввел apollo таким образом

export default Controller.extend({
    apollo: Ember.inject.service(),

И вот эта мутация

actions: {
    signUp() {
        let username = this.get('username');
        let password = this.get('password');
        let email = this.get('email');
        const credentials = { username, password, email };
        let mutation = Mutation.CREATE_USER;

        return this.get('apollo').mutate({mutation, credentials}, 'createUser').then(() => {
        this.set('username', '');
        this.set('email', '');
        this.set('password', '');
        console.log('user created successfully!');
    }).catch(error => console.log('ERROR!!!!111:', error));

После нажатия кнопки отправки в форме я получил это сообщение

POST http://localhost:4200/graphql 500 (Internal Server Error)
ServerParseError: Unexpected token < in JSON at position 0

Что я могу сделать?

1 Ответ

0 голосов
/ 20 июня 2019

Хорошо, вот несколько вещей, которые могут вам помочь:

  • Если вы используете Chrome и переходите к инструментам разработки, перейдите в Сеть -> Предварительный просмотр. Это должно отобразить некоторую разметку с дополнительной информацией об ошибке.
  • Я не уверен, как выглядит ваш файл мутации graphql, но вам, вероятно, следует импортировать его просто как import mutation from ../gql/mutation. Затем назовите это с this.get('apollo').mutate({mutation, credentials}, 'createUser')
  • Убедитесь, что относительный путь к вашему файлу graphql правильный
  • Я бы рекомендовал продлить ваш маршрут ComponentQueryManager, а затем удалить внедренный сервис Apollo
...