Node.js 使用join monster库(GraphQL)为根查询字段分页

Node.js 使用join monster库(GraphQL)为根查询字段分页,node.js,join,pagination,graphql,Node.js,Join,Pagination,Graphql,我正在努力使用join monster库实现应用程序层分页,文档如下: 所有示例都是关于从特定节点对关系进行分页,但我想从RootQuery对字段进行分页。我的RootQuery如下所示: const RootQuery = new GraphQLObjectType({ name: "Query", articles: { type: new GraphQLList(ArticleType), args: {}, resolve(parentVa

我正在努力使用join monster库实现应用程序层分页,文档如下:

所有示例都是关于从特定节点对关系进行分页,但我想从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" }
        );
      }
    }
  })
});
我想对articles字段进行分页,因此我尝试将其转换为连接:

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" }
        );
      }
    }
  })
});
但是当对它运行查询时,我得到了错误

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

现在我被卡住了。我是不是走错路了?我该怎么做


谢谢。

这几乎是对的,问题是我在将数据发送到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));
      }
    }
  })
});