Nestjs中多个graphql解析器实现的问题
Posted
技术标签:
【中文标题】Nestjs中多个graphql解析器实现的问题【英文标题】:Problem with multiple graphql resolver implementations in nestjs 【发布时间】:2019-05-27 10:01:55 【问题描述】:我刚开始学习 NestJS 和 GraphQL。我从UserModule
中定义的单个解析器类UserResolver
开始。此类提供读取用户列表或特定用户的方法。方法用@Query()
装饰,提供user.graphql
file,GraphQL 在AppModule
中初始化,所有这些都在文档中描述。一切正常,我可以通过 Insomnia Tool 或 Playground 获取用户或特定用户的列表。我很高兴!
现在我创建了第二个模块RoleModule
。我创建了一个role.graphql
文件和一个RoleResolver
类,我基本上复制了为User
完成的所有工作,但这次是为Role
。 Role
类型的 GraphQL 类型定义以及 role.graphql
文件中的查询定义被识别。无法识别的是我在 RoleResolver
类中的 Query()
实现,它们没有被调用。
如果我将所有这些与Role
相关的@Query()
定义放入UserResolver
类中,这些与Role
相关的查询现在会被调用。
这是预期的行为吗?我是否需要将所有 GraphQL 查询定义放到一个类中?是否可以将 NestJS-GraphQL 解析器实现分散到多个模块上?难道我做错了什么?请帮忙。
【问题讨论】:
这对我有用。您是否在模块providers
数组中声明了解析器? @Query('role')
中的名称是否正确?还要确保从@nestjs/graphql
导入Query
并从@nestjs/common
导入not。如果这没有帮助,请提供角色解析器的源代码。
@KimKern:感谢您的帮助。我确实是从@nestjs/common
导入的,这就是问题所在...有时第二双眼睛很有帮助!
【参考方案1】:
确保您从@nestjs/graphql
导入Query
而不是从@nestjs/common
导入。
【讨论】:
以上是关于Nestjs中多个graphql解析器实现的问题的主要内容,如果未能解决你的问题,请参考以下文章
Nestjs / GraphQL - Playground 为查询返回 Null 错误。我的解析器?