首页 > 解决方案 > GraphQLError: Syntax Error: Expected :, found { 可能是语法错误

问题描述

我收到此错误:GraphQLError [Object]: Syntax Error: Expected ":", found "}",而我正在尝试使用 Apollo 构建 GraphQL Server 并最终托管在 MongoDB 上。

但我不明白为什么,有人可能会在我的代码中发现错误吗?


const gameWeek = gql`
    type Query {
        GameWeeks: [GameWeek]!
    }
    type Mutation {
        createGameWeek(player_id: ID!): GameWeekUpdateResponse!
        updateGameWeek(player_id: ID!): GameWeekUpdateResponse!
        deleteGameWeek(player_id: ID!)
    }
    type createGameWeek {
        player_id: ID!
        player_name: String!
        points: Float
        rank: Int!
        previous_rank: Int!
        total: Float
        team_name: String!
        team_id: Int
    }
    type GameWeekUpdateResponse {
        success: Boolean!
        message: String
        gameweeks: [GameWeek]
    }
    type GameWeek {
        player_id: ID!
        player_name: String!
        points: Float
        rank: Int!
        previous_rank: Int!
        total: Float
        team_name: String!
        team_id: Int
    }
`;

module.exports = gameWeek;```

标签: graphqlapollo

解决方案


在第 8 行中,您有:

deleteGameWeek(player_id: ID!)

该错误向您解释了您必须通过“:”编写您的突变将返回的内容以及“布尔”之类的数据类型,编译器在突变声明后刚刚找到了一个“}”。你不能让没有返回值的查询、变异或订阅(可能是标量,但那是另一段历史)。

正确的声明可能是:

deleteGameWeek(player_id: ID!) : GameWeekUpdateResponse!

推荐阅读