Prisma orderBy在Playground之外的解析器/查询中

时间:2018-06-09 11:58:04

标签: graphcool prisma prisma-graphql

好的,所以我已经和Prisma合作了几个星期,并取得了很大的进步,我喜欢设置/易于使用,以实现很多高级功能。

我正在尝试在表字段上实现排序。

我可以选择(在其他字段中)按term_ASCterm_DESC排序。

假设以下查询定义:MyConnection(filter: String, order: MyOrderByInput, limit: Int, offset: Int): MyConnection!

如果我在GraphQL Playground中运行以下代码,它可以正常工作:

query myPaginatedResults {
    myConnection(filter: "lorem", limit: 25, offset: 0, order: term_ASC) {
        aggregate {
            count
        }
        edges {
            node {
                id
                term
            }
        }
    }
}

要点/问题...... term_ASC / DESC的用法在游乐场中有效,但我如何在我的JS中传递它?

如果我用引号“term_ASC”包装它,则会出现错误,如果它没有被包装,那么它(resolver / api)会抛出一个明显未定义的变量的错误。

const myConnection = (parent, args, context, info) => {
  const where = args.filter
  ? {
    OR: [
      { term_contains: args.filter },
      { type_contains: args.filter },
      { id_in: args.filter },
    ],
  } : {}

  const order = args.order;
  // const order = `title_ASC`;
  const skip = args.offset ? args.offset : 0;
  const limit = args.limit ? args.limit : 50;

  // console.log(context.db.query);
  const results = context.db.query.myDbConnection({
    where,
    orderBy: order,
    first: limit,
    skip: skip,
  }, info);

  return results;
}

所以我试图测试如何通过变量(硬编码,在此示例中注释掉)或通过我的args.order传递到解析器之前测试如何传递此orderBy变量的部分,我无法想象应该如何通过。

1 个答案:

答案 0 :(得分:1)

好的,按照惯例,一旦我的问题被写下来/表达,我就会想出答案。

问题不在于我无法将MyOrderByInput中的枚举值包装在解析器中的引号中或者分配给变量pre查询,问题是我试图用{{1进行测试我的Type上不存在的/ title_ASC

-1对我来说。

此处的课程:确保您使用的是Prisma架构中实际存在的排序方法。