Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 返回GraphQL上的计数对象_Typescript_Graphql - Fatal编程技术网

Typescript 返回GraphQL上的计数对象

Typescript 返回GraphQL上的计数对象,typescript,graphql,Typescript,Graphql,我试图创建一个GraphQL查询,该查询收集React项目的多个计数,但我无法确定应该输入的确切类型 守则: import { GraphQLInt, GraphQLNonNull } from 'graphql' import * as moment from 'moment' import orm from '../../orm' import authDecorator from '../helpers/auth-decorator' interface IQueryMi

我试图创建一个GraphQL查询,该查询收集React项目的多个计数,但我无法确定应该输入的确切类型

守则:

    import {   GraphQLInt,   GraphQLNonNull } from 'graphql' import * as moment from 'moment' import orm from '../../orm' import authDecorator from '../helpers/auth-decorator'

interface IQueryMissionCountArgs {   authToken: string }

export default authDecorator({   requireAdmin: true,   requireAuth: true })({   type: Object(new GraphQLNonNull(GraphQLInt)),   async resolve (
      args: IQueryMissionCountArgs   ) {
    const lastWeekAcceptedMissionsCount = await orm.models.Mission.count({
      where: {
        createdAt: {
          $between: [moment().subtract(7, 'days').toDate(), new Date()]
        },
        status: 'accepted'
      }
    })
    const lastWeekPostedMissionsCount = await orm.models.Mission.count({
      where: {
        createdAt: {
          $between: [moment().subtract(7, 'days').toDate(), new Date()]
        }
      }
    })
    return {
      lastWeekPostedMissions: lastWeekPostedMissionsCount,
      lastWeekAcceptedMissions: lastWeekAcceptedMissionsCount,
    }   } })
这将返回此错误:

Int不能表示非32位有符号整数值:[对象]\n


为字段定义的类型为整数:

type: Object(new GraphQLNonNull(GraphQLInt))
但是您返回的对象具有两个属性(
LastWeekPostAdministrations
LastWeekAcceptAdministrations

您需要定义一个新的GraphQLObjectType,如下所示:

const WeeklyMissionSummary=新的GraphQLObjectType({ 名称:“WeeklyMissisonSummary”, 字段:{ LastWeekPostAdministration:{type:new GraphQLNonNull(GraphQLInt)}, LastWeekAcceptedAdministrations:{type:new GraphQLNonNull(GraphQLInt)}, }, })

然后,您可以将其用作字段的类型:

type: new GraphQLNonNull(WeeklyMissionSummary)

我就快到了,它只返回类型为“WeeklyMissionSummary!”的“GraphQLError:Field”allMissionStatistics!“必须有一个选择的子域。你是说”所有任务统计“现在您需要修改请求以实际包含这两个字段我不明白您的意思?在发送给服务器的请求中,当您请求
allMissionStatistics
字段时,您不能只请求字段本身,因为它现在是一个对象,所以您必须指定要返回的对象上的字段,像这样:
allMissionStatistics{lastWeekPostAdministrations lastWeekAcceptedAdministrations}
谢谢,答案被认为是正确的,我只是现在有一个问题,所有查询都返回null,而单独运行时返回正确的值