【问题标题】:(node:18560) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'typeFn' of undefined(节点:18560)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“typeFn”
【发布时间】:2020-08-18 02:09:33
【问题描述】:

当我尝试使用 @ResolveField() 装饰器解析字段(块)时出现此错误。

page.resolver.ts

import {
  Resolver,
  Query,
  Mutation,
  Args,
  ResolveField,
  Parent,
} from '@nestjs/graphql';
import { PageService } from './page.service';
import { PageType } from './type/page.type';
import { CreatePageInput } from './input/create-page.input';
import { BlockService } from '../block/block.service';
import { Page } from './page.interface';

@Resolver('Page')
export class PageResolver {
  constructor(
    private readonly pageService: PageService,
    private readonly blockService: BlockService,
  ) {}

  @Query(() => [PageType])
  pages() {
    return this.pageService.getAllPages();
  }

  @Query(() => [PageType])
  async page(@Args('id') id: string) {
    return this.pageService.getPage(id);
  }

  @Mutation(() => PageType)
  createPage(@Args('createPageInput') createPageInput: CreatePageInput) {
    return this.pageService.createPage(createPageInput);
  }

  @ResolveField()
  blocks(@Parent() page: Page) {
    return this.blockService.getManyBlocks(page.blockIds);
  }
}

page.interface.ts

import { Document } from 'mongoose';

export interface Page extends Document {
  readonly id: string;
  readonly name: string;
  readonly createdAt: Date;
  readonly updatedAt: Date;
  readonly createdBy: string;
  readonly updatedBy: string;
  readonly blockIds: string[];
}

【问题讨论】:

  • 我很确定如果您使用的是@ResolveField(),您需要在@Resolver() 装饰器中使用一个函数,例如@Resolver(() => Page)
  • 谢谢,使用@Resolver(() => PageType)后解决了

标签: mongodb typescript mongoose graphql nestjs


【解决方案1】:

@Resolver()装饰器中使用函数() => PageType后解决了。

@Resolver(() => PageType)

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 2020-12-11
    • 1970-01-01
    • 2019-12-15
    • 2021-08-31
    • 2021-09-01
    • 2021-07-05
    • 1970-01-01
    • 2020-12-27
    相关资源
    最近更新 更多