如何将自定义标量导入NestJs中的.graphql文件?

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

感谢@ nestjs / graphql包,我可以在我的应用程序的每个模块中创建单独的.graphql文件,Nestjs系统将它们全部收集起来并将它们很好地介绍给Apolo服务器,但问题出现在我尝试制作自定义标量时,我这样做了他们的教程说:

https://docs.nestjs.com/graphql/scalars

但是我找不到将它们导入.graphql文件的方法,所以我可以在该文件中使用它。由于该文件是.graphql,导入不起作用。你知道如何导入一个在.graphql文件中使用的自定义标量吗?可以作为一个例子的东西是他们使用的一个例子:

https://github.com/nestjs/nest/tree/master/sample/12-graphql-apollo

正如你在他们的例子中看到的那样,他们揭露了他们有一个名为cats的模块,模块里面有他们的cats.resolvers.ts和cats.graphql;另一方面,他们定义了date.scalar.ts。使用此示例的问题:

如何在cats.resolvers.ts的属性中使用DateScalar?

typescript graphql nestjs
1个回答
1
投票

我遇到了这个问题,并通过以下方式解决了这个问题:

  • 首先,我制作了通用模块,将DateScalar设置为提供者,并将其导出:


    import { Module } from '@nestjs/common';
    import { DateScalar } from './scalars/date.scalar';

    @Module({
        providers: [DateScalar],
        exports: [DateScalar]
    })
    export class CommonModule {}

  • 后来,我将公共模块导入了cat模块,以便在整个猫模块中可以使用DateScalar。
  • 最后我在cats.graphql中建立了以下行:


    scalar Date

    type Cat {
      id: Int
      name: String
      age: Int
      birthday: Date
    }

请注意cats.graphql文件中的Scale Date值必须与date.scalar.ts文件中@Scalar ('Date')中设置的值匹配

© www.soinside.com 2019 - 2024. All rights reserved.