在GraphQL中使用Knex和Objection,如何返回count()?

时间:2018-01-07 18:38:35

标签: javascript reactjs graphql knex.js objection.js

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

我的模型中有以下内容:

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

上面应该返回一个Int,但目前正在使用:"Int cannot represent non 32-bit signed integer value: [object Object]",

错误

console.log:

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

控制台日志中的数字14是正确的。如何获取上面的func以返回带有计数的Int?

1 个答案:

答案 0 :(得分:0)

据推测,totalCount字段在架构中定义为整数。如您的日志所示,您的呼叫正在返回一个对象。你的整数字段解析器必须返回一个整数;如果它返回一个对象,GraphQL不知道如何处理它并抛出该错误。

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

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