0

我是 Nestjs 和 GraphQL 的新手。我正在尝试构建一个可以从 Rest API 获取数据的 NestJs GraphQL 服务器。我找到了 RESTDataSource,我正在尝试将它添加到我的 NestJs graphQL Server 中。下面是我的代码

应用模块.ts

  @Module({
  imports: [ExpenditureModule,GraphQLModule.forRoot({
    autoSchemaFile: join(process.cwd(), 'src/schema.gql')
  })],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Expenditure.module.ts(我的模块)

@Module({
  providers: [ExpenditureResolver, ExpenditureService,ExpenseManagerAPI]
})
export class ExpenditureModule {}

费用管理器API.ts

    @Injectable()
    export class ExpenseManagerAPI extends RESTDataSource {
      constructor() {
        super();
        this.baseURL = 'http://localhost:3000/';
      }
    
      async getAllExpenses() {
        return await this.get('expenseManager');
      }
}

费用.resolver.ts

@Resolver(() => ExpenseManager)
export class ExpenditureResolver {
  constructor(private readonly expenditureService: ExpenditureService,private expenseManagerAPI:ExpenseManagerAPI) {}

  @Query(() => [ExpenseManager], { name: 'expenseManager' })
  findAll() {
    return this.expenseManagerAPI.getAllExpenses();
  }
}

费用管理器.entity.ts

@ObjectType()
export class ExpenseManager {
  @Field()
  ProfileId: string;
  @Field()
  Amount: number;
}

所以,当我在我的 GraphQL PlayGround 中查询时

query{
  expenseManager{
    ProfileId
  }
}

它给了我以下错误

[ExceptionsHandler] 无法读取未定义的属性“获取”类型错误:无法读取未定义的属性“获取”

笔记:

使用的 Api ("http://localhost:3000") 已启动并且工作正常。

因此,我该如何解决这个错误?
如何使用 NestJs GraphQL 从 REST API 获取数据?

谢谢!!

4

0 回答 0