我正在尝试使用Nest.js,GraphQL和MongoDB创建简单的应用。我拥有使用TypeORM和TypeGraphql生成我的架构并与本地主机数据库建立连接的能力,但是我无法使用nest start
运行服务器,因为我收到此错误:
UnhandledPromiseRejectionWarning:错误:无法确定getArticles的GraphQL输出类型
我不知道为什么会收到此错误。我的班级ArticleEntity
没有任何非主要类型,因此应该没有任何问题。我试图从() => ID
类的@Field()
类的_id
装饰器中删除ArticleEntity
,但这没有帮助
ArticleResolver
@Resolver(() => ArticleEntity)
export class ArticlesResolver {
constructor(
private readonly articlesService: ArticlesService) {}
@Query(() => String)
async hello(): Promise<string> {
return 'Hello world';
}
@Query(() => [ArticleEntity])
async getArticles(): Promise<ArticleEntity[]> {
return await this.articlesService.findAll();
}
}
ArticleService
@Injectable()
export class ArticlesService {
constructor(
@InjectRepository(ArticleEntity)
private readonly articleRepository: MongoRepository<ArticleEntity>,
) {}
async findAll(): Promise<ArticleEntity[]> {
return await this.articleRepository.find();
}
}
ArticleEntity
@Entity()
export class ArticleEntity {
@Field(() => ID)
@ObjectIdColumn()
_id: string;
@Field()
@Column()
title: string;
@Field()
@Column()
description: string;
}
ArticleDTO
@InputType()
export class CreateArticleDTO {
@Field()
readonly title: string;
@Field()
readonly description: string;
}
[如果您需要其他评论
[ArticleEntity
应该用@ObjectType
装饰器装饰,如文档中的here所示。
@Entity()
@ObjectType
export class ArticleEntity {
...
}