javascript - FindOne-funktionen fungerar inte med Postgres
company.service.ts:`
async get(id: FindOneOptions<Company>): Promise<Company | null>{
console.log(id)
return await this.companyRespository.findOne(id);
}
company.controller.ts:
@Get(':id')
findOneCompany(@Param('id') id: FindOneOptions<Company>){
return this.companyService.get(id);
}
Jag har skrivit följande kod men varje gång jag försöker använda FindOne säger min konsol att "Du måste ange urvalsvillkor för att hitta en enskild rad." Jag har försökt alla möjliga lösningar på nätet, inklusive att lägga till måsvingar och även använda andra FindOptions, men inget verkar få detta fel att försvinna. Min API-plattform visar ett internt serverfel.
Svar #1
Om det är ett id förstår jag inte varför dess typ är ett interface. Jag tror det är därför du har vscode som säger att det är ett fel. Du bör göra som @DinuMinhea säger:
service.ts
async get(id: string | number): Promise<Company | null>{
console.log(id)
return await this.companyRespository.findOne({where: {id}});
}
company.controller.ts:
@Get(':id') findOneCompany(@Param('id') id: string | number){
return this.companyService.get(id);
}
Svar #2
Du bör använda findByOne istället för findOne, eftersom findOne förväntar sig parametrar som id
