GraphQLError: Syntax Error: Expected Name, found @

GraphQLError: Syntax Error: Expected Name, found @

您好,我是 GraphQL 的新用户,我正在尝试创建我将使用的模式。 我看到 here 当您有多对多关系时,建议使用以下结构。

type UserCommunity
  @auth
  @model(queries: null)
  @key(name: "byUser", fields: ["userID", "communityID"]
  @key(name: "byCommunity", fields: ["communityID","userID"]{
  id: ID!
  userID: ID!
  communityID: ID!
  user: User! @connection(fields: ["userID"])
  community: Community! @connection(fields: ["communityID"])
  }

但是,当我使用 AWS Amplify 进行部署时,我收到以下错误消息:

GraphQLError: Syntax Error: Expected Name, found @

它还告诉我它在这一行失败了:

@key(name: "byCommunity", fields: ["communityID","userID"]{

我已尝试查找所有文档并查看了其他堆栈溢出问题,但尚未解决语法问题。

任何帮助将不胜感激!

您在某些行中缺少关闭 )s:

-@key(name: "byUser", fields: ["userID", "communityID"]
+@key(name: "byUser", fields: ["userID", "communityID"])

-@key(name: "byCommunity", fields: ["communityID","userID"]{
+@key(name: "byCommunity", fields: ["communityID","userID"]){

您实际上在@key 两行都缺少右括号。更新到这里,你应该可以开始了。

type UserCommunity
  @auth
  @model(queries: null)
  @key(name: "byUser", fields: ["userID", "communityID"])
  @key(name: "byCommunity", fields: ["communityID","userID"]){
  id: ID!
  userID: ID!
  communityID: ID!
  user: User! @connection(fields: ["userID"])
  community: Community! @connection(fields: ["communityID"])
}

旁注:如果您没有文本编辑器,我建议您购买一个 GraphQL 荧光笔。当您遇到语法问题时,关键字会改变颜色。这只是您需要注意的另一件事。