Nestjs 数字字段的Int标量
在用户模块的代码优先GraphQL模式中,我试图定义一个模型,如下所示:Nestjs 数字字段的Int标量,nestjs,Nestjs,在用户模块的代码优先GraphQL模式中,我试图定义一个模型,如下所示: import { Field, Int, ObjectType } from '@nestjs/graphql'; import { User } from './user.model'; @ObjectType() export class UserList { @Field(() => Int) totalCount!: number; @Field(() => [User]) item
import { Field, Int, ObjectType } from '@nestjs/graphql';
import { User } from './user.model';
@ObjectType()
export class UserList {
@Field(() => Int)
totalCount!: number;
@Field(() => [User])
items!: User[];
}
但是,这会产生一个错误:(节点:5222)未处理PromisejectionWarning:错误:无法确定“totalCount”的GraphQL输出类型。确保您的类由适当的装饰器装饰。
如果我将@Field(()=>Int)
替换为@Field()
,则生成成功,但totalCount在我的架构中被赋予浮点输出类型
如果我用@Field()
替换@Field(()=>Int)
,并将buildSchemaOptions:{numberScalarMode:'integer'}
添加到GraphQLModule模块导入中,我会得到所需的模式,其中totalCount在我的模式中被赋予一个Int输出类型
初始解决方案是不可取的,因为它将我的整数视为浮点数。第二种解决方案是不可取的,因为当我应该能够显式地将输出类型定义为整数时,强制所有数字为整数似乎有点太过老练
我已经成功地将graphql类型中的Int标量用于其他项目,所以我想知道我在NestJS中缺少了什么来让它工作
更新:这似乎是将UsersModule放入我正在创建的NPM包中的结果。UsersModule(以及相关的解析器、服务、模型等)都位于NPM包中,NPM包是构建/分发的,然后导入到另一个项目的app.module中