如何访问传递给子查询的变量

时间:2019-02-11 21:34:02

标签: graphql

我希望能够向子查询添加参数,但是我不知道如何使它工作。

我正在尝试使用包含我所拥有的查询的查看器对象编写模式,以便我可以返回边/节点。我认为我缺少有关解析器的一些基本知识,但是经过大量的搜索之后,我仍然不明白。

我的模式如下(只是相关位):

type Query {
    viewer: Viewer!
}

type Viewer {
  allLinks(skip: Int, first: Int, last: Int, orderBy: 
    LinkOrderByInput): LinkConnection
}

LinkConnection是您所期望的,它具有一个edges属性,该属性是节点等的列表。

我正在使用Prisma,解析器如下所示:

const allLinks = async (parent, args, context, info) => {
  const links = await context.prisma.linksConnection({
    first: args.first,
    orderBy: args.orderBy,
  })
  const count = await context.prisma
    .linksConnection()
    .aggregate()
    .count()
  return {
    pageInfo: links.pageInfo,
    edges: links.edges,
    count,
  }
}

export const viewer = async (parent, args, context, info) => {
  const links = await allLinks(parent, args, context, info)
  return { allLinks: links }
}

然后如果我执行此查询:

query {
  viewer {
    allLinks(first: 1, orderBy:createdAt_DESC) {
      edges {
        node {
          id
        }
      }
      count
    }
  }
}

然后它运行时并没有实际出错,但是它返回了所有链接,而不仅仅是返回一个链接,而且我已经使用console.logging了,似乎first和orderBy参数实际上并没有做任何事情。

任何人都可以帮助说明我如何构建解析器,以使参数实际起作用吗?看来这应该是显而易见的!

0 个答案:

没有答案