我正在使用Prisma GraphqQL,我得到了一个带有选择器的变异的错误: “您为User上的where选择器提供了无效参数”
突变:
mutation UpdateUserMutation($data: UserUpdateInput!, $where: UserWhereUniqueInput!) {
updateUser(data: $data, where: $where) {
id
name
email
role
}
}
变量:
{
"data": {
"name": "alan", "email": "alan@gmail.com", "role": "ADMIN"
},
"where": {
"id": "cjfsvcaaf00an08162sacx43i"
}
}
结果:
{
"data": {
"updateUser": null
},
"errors": [
{
"message": "You provided an invalid argument for the where selector on User.",
"locations": [],
"path": [
"updateUser"
],
"code": 3040,
"requestId": "api:api:cjftyj8ov00gi0816o4vvgpm5"
}
]
}
架构:
updateUser(
data: UserUpdateInput!
where: UserWhereUniqueInput!
): User
type UserWhereUniqueInput {
id: ID
resetPasswordToken: String
email: String
}
为什么这种突变不起作用?
有颜色: Mutation GraphQL Schema Graphql
额外信息
此项目的完整代码为here:
Graphql playground 是here:
查询用户(ID为:cjfsvcaaf00an08162sacx43i)。因此,用户可以在查询中找到“where”运算符,但不能在变异中找到。
答案 0 :(得分:3)
您的updateUser解析程序未正确实现:
async function updateUser(parent, { id, name, email, role }, ctx, info) {
// console.log( id, name, email)
await ctx.db.mutation.updateUser({
where: { id: id },
data: {name: name, email: email, role: role},
})
}
您的变异有两个参数数据和位置,但您希望参数列表{id,name,email,role}。
相应地更新架构或解析器。