将 Knex 和 Objection 与 GraphQL 结合使用,如何 return count()?

Using Knex and Objection with GraphQL, how to return the count()?

我有一个使用 Node、Knew 和 Objection 的 GraphQL 服务器。

我的模型中有以下内容:

  totalCount = async () => {
    const totalCount = await Request
      .query()
      .count();
    console.log(totalCount);
    return totalCount;
  }

上面的应该是 return 一个 Int 但目前有错误:"Int cannot represent non 32-bit signed integer value: [object Object]",

console.log:

[ Request { totalCount: [Function], count: 14 } ]

控制台日志中的数字 14 是正确的。我怎样才能得到上面的函数 return 一个带有计数的 Int?

据推测,totalCount 字段在您的模式中被定义为一个整数。如您的日志所示,您的调用是 returning 一个对象。您的整数字段解析器必须 return 一个整数;如果它 return 是一个对象,GraphQL 不知道如何处理它并抛出该错误。

只需从查询结果中提取计数,如下所示:

totalCount = () => {
  return Request
    .query()
    .count()
    .then(([res]) => res && res.count)
}