为什么我无法确定GraphQL输出错误?

问题描述 投票:1回答:1

我正在尝试使用Nest.jsGraphQLMongoDB创建简单的应用。我拥有使用TypeORMTypeGraphql生成我的架构并与本地主机数据库建立连接的能力,但是我无法使用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;
}

[如果您需要其他评论

node.js typescript graphql nestjs
1个回答
1
投票

[ArticleEntity应该用@ObjectType装饰器装饰,如文档中的here所示。

@Entity()
@ObjectType
export class ArticleEntity {
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.