GraphQL引发语法错误

时间:2019-06-19 11:29:24

标签: javascript node.js graphql

我正在开发GraphQL Node教程,并进行到步骤7。

https://www.howtographql.com/graphql-js/7-subscriptions/

我在RDD[Array[String]]文件中的这段代码中收到许多语法错误:

datamodel.prisma

但是我仍然得到directive @id on FIELD_DEFINITION directive @unique on FIELD_DEFINITION directive @createdAt on FIELD_DEFINITION scalar DateTime type Link { id: ID! @id createdAt: DateTime! @createdAt description: String! url: String! postedBy: User votes: [Vote!]! } type User { id: ID! @id name: String! email: String! @unique password: String! links: [Link!]! votes: [Vote!]! } type Vote { id: ID! @id link: Link! user: User! } 'User' type [@6:1] tried to redefine existing 'User' type [@15:5]

我也不确定我是否正确声明了'Link' type [@24:1] tried to redefine existing 'Link' type [@6:5]directives,因为官方教程中没有。

任何人都可以就如何解决这些问题提供任何建议吗?

Schema.graphql:

scalars

2 个答案:

答案 0 :(得分:0)

今天早上我遇到了同样的错误,我觉得这与缓存有关。当我重命名变量时,它消失了。根据您的情况,将所有“链接”定义/引用更改为“ LinkTwo”,然后查看错误是否消失。与“用户”相同...将其更改为“ UserTwo”。如果是这样,也许您之后可以重命名它们。

答案 1 :(得分:0)

我以前没有使用过Prisma,只是浏览了一下本教程,但是看起来您正在定义两种User类型;您在datamodel.prisma和Schema.graphql中有一个(在教程中找不到User的两个定义)。如果将它们读入同一实例,这就是graphql认为您试图重新定义用户类型的原因。删除一个,或者将第二个更改为extend type User(如果适用),以解决语法错误。