当前位置: 首页 > 知识库问答 >
问题:

graphql错误:where突变不起作用

终洛华
2023-03-14

我使用的是Prisma GraphqQL,我在where选择器中发现了一个突变:“您为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
}

为什么这种突变不起作用?

额外信息

这个项目的完整代码在这里:

Graphql游乐场在这里:

共有1个答案

宰父衡
2023-03-14

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}。

相应地更新架构或解析器。

来源: https://github.com/graphcool/prisma/issues/2211

 类似资料:
  • 我在GraphQL Java中定义了一个简单的模式来添加并获取。我的模式如下: 我创建了如下运行时连接: 查询工作正常,但变异不工作,并给出以下错误: 邮递员的突变是: 请帮帮我。它没有检测到突变类型,但查询工作绝对正常。我错过什么了吗?

  • 我正在尝试向使用Apollo的GraphQL服务器发送突变查询。 然而,我只看到实现这一点的唯一方法是使用突变组件。https://www.apollographql.com/docs/react/essentials/mutations/#the-突变成分 有没有一种简单的方法可以发送这样的突变? 从“graphql标记”导入gql;

  • 所有和任何建议将非常感谢!谢谢你! 发布http://localhost:3000/GraphQL 400(错误请求)[GraphQL错误]:消息:变量“$email”未定义。,位置:[object object],[object object],路径:未定义 [GraphQL错误]:消息:变量“$LocationCity”未定义。,位置:[object object],[object objec

  • 我正在尝试使用 graphql 将数据插入/更改为动态,请参阅下图在插入数据时出错。如果在创建架构或更改数据时存在错误,我会感到困惑。该表是使用放大创建的 这是模式脚本

  • 我是GraphQL的新手。我使用express-graphql在REST API上为petSore模式生成graphql查询。我能够使用graphql查询获得get API的结果,但无法使用突变获得POST/PUT API的响应。)为了创建宠物,我使用突变, null

  • 在后端,我进行了调试,并收到了请求,它根据客户机上设置的令牌查找用户,但随后什么也不做,只在我试图从应用程序发送时返回给我400,在graphiql浏览器上。 我错过了什么?非常感谢。