GraphQL突变抛出错误

时间:2018-06-24 19:09:17

标签: javascript graphql prisma prisma-graphql

更新

我已经缩小到引发错误的位置,这似乎是一个e问题。

在表决功能内在这里发生错误:

Prisma

原始

我正在通过this tutorial工作。

我正在尝试“投票”一篇帖子,但是会引发以下错误:

const linkExists = await context.db.exists.Vote({
    user: { id: userId },
    link: { id: args.linkId }
})

我要发送的变异是:

{
  "data": {
    "vote": null
  },
  "errors": [
    {
      "message": "Variable '$_v0_where' cannot be non input type 'VoteWhereInput'. 
                  (line 1, column 20):\nquery ($_v0_where: VoteWhereInput) 
                  {\n                   ^",
      "locations": [],
      "path": [
        "votes"
      ]
    }
  ]
}

不确定此错误的含义。我一直在将自己的代码与official repo on Github进行比较,但找不到区别。

这是我的投票功能:

mutation{
  vote(linkId:"cjit726cxfkpj0a21z74nuncu"){
    id
  }
}

我退出async function vote(parent, args, context, info) { const userId = getUserId(context) const linkExists = await context.db.exists.Vote({ user: { id: userId }, link: { id: args.linkId }, }) if (linkExists) { throw new Error(`Already voted for link: ${args.linkId}`) } return context.db.mutation.createVote( { data: { user: { connect: { id: userId } }, link: { connect: { id: args.linkId } }, }, }, info, ) } 时显示:

args

我创建了一个新用户,并与该用户创建了一条帖子(两种方法都很好),但是当我尝试以该用户的身份投票时,我陷入了困境。

如果需要,我的query: query ($_v0_where: VoteWhereInput) { votes(where: $_v0_where) { id } } operationName: null variables: { "_v0_where": { "link": { "id": "cjit5v46i2r3y0a21a7ez0t9p" }, "user": { "id": "cjis44x27gbn60a219abasvjz" } } }

datamodel.schema

1 个答案:

答案 0 :(得分:2)

这是因为db.exists的结构要求发送包装在where字段中的参数。

enter image description here 看来该文档已过时,也将获得them updated