Новая ошибка Apollo Необработанное отклонение (ошибка): сетевая ошибка: код состояния 400 - PullRequest
0 голосов
/ 26 мая 2020

Я работаю с сервером graphql / apollo и Prisma Cloud и пытаюсь подключиться к моему новому клиенту реакции для добавления игроков в команду в клубе. Однако я получаю ошибку кода состояния 400. Я просматривал множество других похожих ошибок и пытался воспроизвести и исправить, но, похоже, не могу понять эту.

Вот мое приложение. js

import ApolloClient from 'apollo-boost';
import { ApolloProvider } from '@apollo/react-hooks';


//components
import TeamList from './components/TeamList'
import PlayerList from './components/PlayerList';
import AddPlayer from './components/AddPlayer';
import AddTeam from './components/AddTeam';


//apollo client setup
const client = new ApolloClient({
  uri: 'http://localhost:4000'
});

class App extends Component {
  render() {
    return (
        <ApolloProvider client={client}>
            <div id="main">
      <h1>Coach Ed</h1>
     <TeamList/>
     <PlayerList/>
     <AddPlayer/>
     <AddTeam/>
     </div>
        </ApolloProvider>
    );
  }
}

export default App;

Вот мой компонент Add Player:

class AddPlayer extends Component {
    constructor(props){
        super(props);
        this.state = {
            playername: "",
            team: ""
        };
    }
        displayTeams(){
            var data = this.props.getTeamsQuery;
            if(data.loading){
                return( <option disabled>Loading teams</option> );
            } else {
                return data.teams.map(team => {
                    return( <option key={ team.id } value={team.id}>{ team.title }</option> );
                });
            }
        }

Вот моя мутация добавления игрока

const addPlayerMutation = gql`
    mutation{
        createPlayer(playername: "", teamId: ""){
            playername
            id
        }
    }
`;

export { getPlayersQuery, getTeamsQuery, addPlayerMutation}

Вот информация о схеме с сервера

type Mutation {
     createPlayer(data: CreatePlayerInput!): Player!
  }

type Player {
    id: ID!
    playername: String!
    coachcreator: User!
    team: Team!
    updatedAt: String!
    createdAt: String!
}

input CreatePlayerInput {
    playername: String!
    team: ID!
}

Вот моя мутация создания игрока на сервере

async createPlayer(parent, args, { prisma, request }, info) {
        const userId = getUserId(request)
        const teamExists = await prisma.exists.Team({
            id: args.data.team,
            published: true
        })

        if (!teamExists) {
            throw new Error('Unable to find team')
        }

        return prisma.mutation.createPlayer({
            data: {
                playername: args.data.playername,
                coachcreator: {
                    connect: {
                        id: userId
                    }
                },
                team: {
                    connect: {
                        id: args.data.team
                    }
                }
            }
        }, info)
    },

Это ошибка, которую я получаю

Unhandled Rejection (Error): Network error: Response not successful: Received status code 400

и

POST http://localhost:4000/ 400 (Bad Request)
(anonymous) @   0.chunk.js:7153
Subscription    @   0.chunk.js:72989
subscribe   @   0.chunk.js:73067
(anonymous) @   0.chunk.js:6788
Subscription    @   0.chunk.js:72989
subscribe   @   0.chunk.js:73067
(anonymous) @   0.chunk.js:5126
Subscription    @   0.chunk.js:72989
subscribe   @   0.chunk.js:73067
(anonymous) @   0.chunk.js:5321
(anonymous) @   0.chunk.js:5316
step    @   0.chunk.js:71481
(anonymous) @   0.chunk.js:71412
(anonymous) @   0.chunk.js:71385
__awaiter   @   0.chunk.js:71364
QueryManager.mutate @   0.chunk.js:5256
ApolloClient.mutate @   0.chunk.js:6626
MutationData.mutate @   0.chunk.js:1303
MutationData._this.runMutation  @   0.chunk.js:1254
submitForm  @   main.chunk.js:175
callCallback    @   0.chunk.js:40512
invokeGuardedCallbackDev    @   0.chunk.js:40561
invokeGuardedCallback   @   0.chunk.js:40614
invokeGuardedCallbackAndCatchFirstError @   0.chunk.js:40629
executeDispatch @   0.chunk.js:40714
executeDispatchesInOrder    @   0.chunk.js:40739
executeDispatchesAndRelease @   0.chunk.js:43623
executeDispatchesAndReleaseTopLevel @   0.chunk.js:43632
forEachAccumulated  @   0.chunk.js:43604
runEventsInBatch    @   0.chunk.js:43649```

плюс также

ncaught (in promise) Error: Network error: Response not successful: Received status code 400
    at new ApolloError (0.chunk.js:4119)
    at Object.error (0.chunk.js:5357)
    at notifySubscription (0.chunk.js:72934)
    at onNotify (0.chunk.js:72973)
    at SubscriptionObserver.error (0.chunk.js:73030)
    at 0.chunk.js:5134
    at Set.forEach (<anonymous>)
    at Object.error (0.chunk.js:5133)
    at notifySubscription (0.chunk.js:72934)
    at onNotify (0.chunk.js:72973)
    at SubscriptionObserver.error (0.chunk.js:73030)
    at Object.error (0.chunk.js:6827)
    at notifySubscription (0.chunk.js:72934)
    at onNotify (0.chunk.js:72973)
    at SubscriptionObserver.error (0.chunk.js:73030)
    at 0.chunk.js:7169

Я читал о добавлении 'cors', но почти все они связаны с работой с Express и не уверены, что то же самое применяются принципы. Также было некоторое обсуждение установки обработки ошибок Apollo, и я не мог понять, как реализовать это с импортом и версиями между версиями Apollo, являющимися проблемой.

Любая помощь с показанной выше ошибкой будет очень принята.

...