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

标签 typescript graphql nestjs

感谢 @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

正如您在他们的示例中看到的那样,他们公开了他们有一个名为 cat 的模块,在模块内部他们有他们的 cats.resolvers.ts 和他们的 cats.graphql;另一方面,他们定义了 date.scalar.ts。 使用此示例的问题:

我应该怎么做才能在 cats.resolvers.ts 的属性中使用 DateScalar?

最佳答案

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

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


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

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

  • 后来,我将 common 模块导入到 cats 模块中,以便 DateScalar 在整个 cats 模块中可用。

  • 最后我在 cats.graphql 中建立了以下行:



    scalar Date

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

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

关于typescript - 如何将自定义标量导入 NestJs 中的 .graphql 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54263937/

相关文章:

json - 在 AWS AppSync 查询中返回嵌套的 JSON

php - 通过 user_id 获取 Lighthouse GraphQL 数据所有权

mysql - graphQL 与 Sequelize 和 Mysql 重复字段相关

microservices - nestjs 微服务 - 有一个 clientProxy 将消息发布到任何微服务

node.js - 在 Observable 中返回自己的静态值

javascript - 为 Azure API 管理创建的 SAS token 无效

传递变量而不是硬编码值时,JavaScript 函数不起作用

Typescript:空检查在 array.map 函数内不起作用

node.js - Typescript 属性装饰器可以修改实例成员而不是整个类吗?

typescript - NestJS 中的 CouchDB