【发布时间】:2019-05-27 10:01:55
【问题描述】:
我刚开始学习 NestJS 和 GraphQL。我从UserModule 中定义的单个解析器类UserResolver 开始。此类提供读取用户列表或特定用户的方法。方法用@Query() 装饰,提供user.graphqlfile,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导入的,这就是问题所在...有时第二双眼睛很有帮助!
标签: node.js typescript graphql nestjs