我刚刚将GraphQL从0.13.2版本更新到了14.0.2。启动服务器时,出现错误消息:library(dplyr)
df %>%
inner_join(vertices, by = c(from = 'label')) %>%
inner_join(vertices, by = c(to = 'label')) %>%
select_at(vars(matches('.x|.y')))
# id.x id.y
# 1 3 1
# 2 1 2
# 3 1 3
# 4 2 3
# 5 3 3
。这是我的架构:
Error: Unknown directive "unique"
请注意,即使我使用的是const { gql } = require('apollo-server')
// type Query is the root query
exports.typeDefs = gql`
type User {
username: String! @unique
password: String!
}
type Query {
getAllUsers: User
}
中的gql
,它也是在后台使用GraphQL。
您可以看到导致问题的原因是我已经做到了,因此用户名必须唯一。 GraphQL的更新版本不能再具有此指令。果然,删除apollo-server
可解决此问题。我仍然希望用户名唯一。我读过您可以创建自定义指令。我该怎么做呢?
答案 0 :(得分:0)
在将完全自定义指令(将graphql-tools升级到v14)中使用完全自定义指令时,遇到了与您类似的情况,该指令在架构中需要定义。您可以按字段,对象,突变指定指令的工作位置。
Map
要在现场进行此类工作
directive @requireAuth on FIELD_DEFINITION
我的扩展SchemaDirectiveVisitor的类是这样的
extend type Query {
me: String! @requireAuth
user(userId: ID!):User!
users: [User]!
}
在提供的链接中,存在可用的方法,以便在字段,对象,标量等级别使用自定义逻辑。希望这可以帮助。