[英]NestJs - Graphql Error Cannot determine a GraphQL input type for the <Field>. Make sure your class is decorated with an appropriate decorator
[英]Graphql Nestjs add arguments to type field
你好,你好吗,过去一周我一直在学习 Nestjs,并且非常喜欢它。 我目前正在将它与 Prisma 2 一起使用来构建 graphql 服务器。 我想在 graphql 类型字段中添加 arguments 以便能够使用棱镜过滤或排序结果。 明确地说,我希望能够执行以下架构
query {
findUniqueUser(where: { id: 1 }) {
id
email
name
posts(where: { title: { contains: "a" } }, orderBy: { createdAt: asc }, first: 10, skip: 5) {
id
title
comments(where: { contain: { contains: "a" } }) {
id
contain
}
}
}
}
我正在使用库@paljs/plugins从 GraphQLResolveInfo 中提取信息并对 prisma 进行查询。 我还使用库prisma-nestjs-graphql自动生成所有 graphql 类型定义。 有没有人尝试过使用nestjs? 谢谢你,祝你有美好的一天
编辑:我使用代码优先 graphql
编辑 2:四处挖掘后,我找到了一种使用@ResolveField
的方法。
@Query((returns) => Patient, { nullable: true, name: "patient" })
async getPatient(@Args() params: FindUniquePatientArgs, @Info() info: GraphQLResolveInfo) {
const select = new PrismaSelect(info).value;
params = { ...params, ...select };
return this.prismaService.patient.findUnique(params);
}
@ResolveField(() => File)
async files(@Parent() patient: Patient, @Args() params: FindManyFileArgs) {
return patient.files;
}
我不知道这是否是最好的方法,所以我暂时不回答这个问题。
我将把它留在这里作为答案
@Query((returns) => Patient, { nullable: true, name: "patient" })
async getPatient(@Args() params: FindUniquePatientArgs, @Info() info: GraphQLResolveInfo) {
const select = new PrismaSelect(info).value;
params = { ...params, ...select };
return this.prismaService.patient.findUnique(params);
}
@ResolveField(() => File)
async files(@Parent() patient: Patient, @Args() params: FindManyFileArgs) {
return patient.files;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.