我正在开发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
答案 0 :(得分:0)
今天早上我遇到了同样的错误,我觉得这与缓存有关。当我重命名变量时,它消失了。根据您的情况,将所有“链接”定义/引用更改为“ LinkTwo”,然后查看错误是否消失。与“用户”相同...将其更改为“ UserTwo”。如果是这样,也许您之后可以重命名它们。
答案 1 :(得分:0)
我以前没有使用过Prisma,只是浏览了一下本教程,但是看起来您正在定义两种User类型;您在datamodel.prisma和Schema.graphql中有一个(在教程中找不到User的两个定义)。如果将它们读入同一实例,这就是graphql认为您试图重新定义用户类型的原因。删除一个,或者将第二个更改为extend type User
(如果适用),以解决语法错误。