【问题标题】:Paginating a Root Query field using join-monster library (GraphQL)使用 join-monster 库 (GraphQL) 对根查询字段进行分页
【发布时间】:2017-08-17 20:01:33
【问题描述】:

我正在努力使用以下文档的 join-monster 库实现应用层分页:http://join-monster.readthedocs.io/en/latest/pagination/

所有示例都是关于从特定节点对关系进行分页,但我想对 RootQuery 中的字段进行分页。我的 RootQuery 如下所示:

const RootQuery = new GraphQLObjectType({
  name: "Query",
    articles: {
      type: new GraphQLList(ArticleType),
      args: {},
      resolve(parentValue, args, context, resolveInfo) {
        return joinMonster(
          resolveInfo,
          {},
          sql => {
            return knex.raw(sql).then(result => {
              return result[0];
            });
          },
          { dialect: "mysql" }
        );
      }
    }
  })
});

我想给文章字段分页,所以我试着把它变成一个连接:

const RootQuery = new GraphQLObjectType({
  name: "Query",
  fields: () => ({
    articles: {
      type: ArticleConnection,
      args: gqlUtils.connectionArgs,
      resolve(parentValue, args, context, resolveInfo) {
        return joinMonster(
          resolveInfo,
          {},
          sql => {
            return knex.raw(sql).then(result => {
              return gqlUtils.connectionFromArray(result[0], args);
            });
          },
          { dialect: "mysql" }
        );
      }
    }
  })
});

但是当对它运行查询时,我得到了错误

函数必须返回/解析每个对象所在的对象数组 结果集中的一行。而是得到了 { 边...

现在我被困住了。我以错误的方式接近它吗?我该怎么做?

谢谢。

【问题讨论】:

    标签: node.js join pagination graphql


    【解决方案1】:

    这几乎是对的,问题是我在将数据发送到joinMonster之前调用了“connectionFromArray”,显然它必须在之后调用:

    const RootQuery = new GraphQLObjectType({
      name: "Query",
      fields: () => ({
        articles: {
          type: ArticleConnection,
          args: connectionArgs,
          resolve(parentValue, args, context, resolveInfo) {
            return joinMonster(
              resolveInfo,
              {},
              sql => {
                return knex.raw(sql).then(result => {
                  return result[0];
                });
              },
              { dialect: "mysql" }
            ).then(data => connectionFromArray(data, args));
          }
        }
      })
    });
    

    【讨论】:

      猜你喜欢
      • 2021-05-06
      • 2022-11-11
      • 2014-10-16
      • 2022-12-14
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 2018-03-31
      • 2019-07-16
      相关资源
      最近更新 更多