如何将自定义标量导入 NestJs 中的 .graphql 文件?
Posted
技术标签:
【中文标题】如何将自定义标量导入 NestJs 中的 .graphql 文件?【英文标题】:How do I import a custom scalar into a .graphql file in NestJs? 【发布时间】:2019-06-13 07:21:27 【问题描述】:感谢 @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?
【问题讨论】:
【参考方案1】:我遇到了这个问题并通过以下方式解决了它:
首先,我创建了通用模块来将 DateScalar 设置为提供程序并导出它:
import Module from '@nestjs/common';
import DateScalar from './scalars/date.scalar';
@Module(
providers: [DateScalar],
exports: [DateScalar]
)
export class CommonModule
后来,我将公共模块导入到猫模块中,以便在整个猫模块中都可以使用 DateScalar。
最后我在cats.graphql中建立了以下行:
scalar Date
type Cat
id: Int
name: String
age: Int
birthday: Date
注意cats.graphql 文件中的Scale Date
值必须与date.scalar.ts 文件中@Scalar ('Date')
中设置的值匹配
【讨论】:
以上是关于如何将自定义标量导入 NestJs 中的 .graphql 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将自定义类导入 Flex 中的 mxml 文件? (动作脚本 3)
如何使用 Azure Synapse Analytics 将自定义 Python 库导入到 Apache Spark 池中?
GraphQL 如何使用 Nestjs 或 type-graphql 设置查询 MongoDB ref 集合