Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Mongodb @nestjs/graphql错误:需要为DemandResolver#demand参数#0提供显式类型_Mongodb_Graphql_Nestjs_Typeorm_Typegraphql - Fatal编程技术网

Mongodb @nestjs/graphql错误:需要为DemandResolver#demand参数#0提供显式类型

Mongodb @nestjs/graphql错误:需要为DemandResolver#demand参数#0提供显式类型,mongodb,graphql,nestjs,typeorm,typegraphql,Mongodb,Graphql,Nestjs,Typeorm,Typegraphql,我正在使用nestjs+graphql+typeORM+mongoDB创建一个graphql服务器 我只是不能用ObjectID(mongoDB id)查询检索请求。 下面的例子说明了这个错误 UnhandledPromiseRejectionWarning: Error: You need to provide explicit type for DemandResolver#demand parameter #0 ! objectId.scalar.ts 从'graphql'导入{Kin

我正在使用nestjs+graphql+typeORM+mongoDB创建一个graphql服务器

我只是不能用ObjectID(mongoDB id)查询检索请求。 下面的例子说明了这个错误

 UnhandledPromiseRejectionWarning: Error: You need to provide explicit type for DemandResolver#demand parameter #0 !
objectId.scalar.ts

从'graphql'导入{Kind};
从'@nestjs/graphql'导入{CustomScalar,Scalar};
从“typeorm”导入{ObjectID};
@标量('ObjectID',type=>ObjectID)
导出类ObjectdScalar实现CustomScalar{
description='Mongo对象id标量类型';
parseValue(值:字符串){
返回新的ObjectID(value);//来自客户端输入变量的值
}
序列化(值:ObjectID){
返回值.toHexString();//发送到客户端的值
}
parseLiteral(ast){
if(ast.kind===kind.STRING){
返回新的ObjectID(ast.value);//来自客户端查询的值
}
返回null;
}
}
需求。ts

从'type graphql'导入{Field,InputType,ObjectType};
从“typeorm”导入{Column,Entity,ObjectID,objectdcolumn};
@实体()
@ObjectType()
@InputType('DemandInput')
出口类需求{
@字段(类型=>ObjectID,{nullable:true})
@ObjectedColumn()
id?:ObjectID;
@字段({nullable:true})
@列({nullable:true})
名称?:字符串;
}
需求模块.ts

从'@nestjs/common'导入{Module};
从“./demand.resolver”导入{DemandResolver};
从“/demand.service”导入{DemandService};
从'@nestjs/typeorm'导入{TypeOrmModule};
从“/Demand”导入{Demand};
从“../scalars/objectId.scalar”导入{ObjectIDScalar};
@模块({
导入:[TypeOrmModule.forFeature([Demand])],
提供者:[DemandResolver,DemandService,ObjectdScalar],
})
导出类DemandModule{}
demand.resolver.ts

从'@nestjs/graphql'导入{Args,Mutation,Query,Resolver};
从“/Demand”导入{Demand};
从“/demand.service”导入{DemandService};
从“typeorm”导入{ObjectID};
@分解器(按需)
导出类DemandResolver{
构造函数(私有只读demandService:demandService){}
@查询(()=>需求)
异步请求(@Args('id')id:ObjectID){
返回等待this.demandService.findById(id);
}
}
需求服务.ts

从'@nestjs/common'导入{Injectable};
从'@nestjs/typeorm'导入{InjectRepository};
从“/Demand”导入{Demand};
从“typeorm”导入{MongoRepository,ObjectID};
@可注射()
导出类DemandService{
建造师(
@InjectRepository(Demand)私有只读demandRepository:MongoRepository,
) {}
异步findById(id:ObjectID){
返回此.demandRepository.findOne(id);
}
}
我希望你能帮助我理解。我尝试在解析器和服务中用字符串替换ObjectID,它可以工作,但我还有一个错误

@Query(()=>需求)
异步请求(@Args('id')id:string){
返回等待this.demandService.findById(id);
}
UnhandledPromiseRejectionWarning: Error: Cannot determine GraphQL output type for id