Не удалось найти аргумент во вложенном запросе Prisma / GraphQL - PullRequest
0 голосов
/ 19 октября 2018

На моем graphql-yoga сервере у меня есть такая схема:

type Play {
  id: ID!
  frames: [Frame!]!
}

type Frame {
  id: ID!
  play: Play!
}

query  {
  play(playId: "myid") {
    id
    ### The error occurs when I uncomment these lines:
    # frames {
    #   id
    # }
  }
}

У меня есть резольверы для запроса:

return await context.prisma.play({ id: args.playId })

У меня также есть резольверы для отношений, например:

const frames = async (root, args, context) => {
  return await context.prisma.frames({ play: { id: root.id }})
}

Когда я запускаю запрос с закомментированными строками, он выполняется как положено.Когда я добавляю в отношения, я получаю сообщение об ошибке:

Error: Could not find argument play for type Frame
    at server\node_modules\prisma-client-lib\dist\Client.js:248:31
    at Array.forEach (<anonymous>)
    at server\node_modules\prisma-client-lib\dist\Client.js:234:50
    at Array.reduceRight (<anonymous>)
    at Client.generateSelections (server\node_modules\prisma-client-lib\dist\Client.js:231:32)
    at Client.<anonymous> (server\node_modules\prisma-client-lib\dist\Client.js:87:35)
    at step (server\node_modules\prisma-client-lib\dist\Client.js:47:23)
    at Object.next (server\node_modules\prisma-client-lib\dist\Client.js:28:53)
    at server\node_modules\prisma-client-lib\dist\Client.js:22:71
    at new Promise (<anonymous>)

Я использую prisma-client-lib@1.18.1, graphql-yoga@1.16.2 и graphql@0.13.0

1 Ответ

0 голосов
/ 19 октября 2018

Оказывается, что эта ошибка была в распознавателе, хотя трассировка стека была бесполезной.Я изменил

const frames = async (root, args, context) => {
  return await context.prisma.frames({ play: { id: root.id }})
}

На

const frames = async (root, args, context) => {
  return await context.prisma.frames({ where: { play: { id: args.playId }}})
}
...