【问题标题】:GraphQLDocumentError: Unknown type "Int"GraphQLDocumentError:未知类型“Int”
【发布时间】:2021-11-14 14:31:11
【问题描述】:

我正在尝试学习 Ben Awad 的 lireddit 教程。

在 6.49,他演示了如何将类型分配给需要覆盖默认预期值的参数。

解析器有:

@Resolver()
  export class PostResolver {
    @Query(() => [Post])
    async posts(
      @Arg("limit", () => Int) limit: number,
      @Arg("cursor", () => String, { nullable: true }) cursor: string | null
    ): Promise<Post[]> {
      const realLimit = Math.min(50, limit);
      
      const qb = getConnection()
        .getRepository(Post)
        .createQueryBuilder("p")
        .orderBy('"createdAt"', "DESC")
        .take(realLimit)
        
        if (cursor) {
          qb.where('"createdAt" < :cursor',  new Date ( parseInt(cursor)) )
        }
       return qb.getMany();
    }

当我尝试使用它生成类型时,它失败了。我收到错误提示:

  1. GraphQLDocumentError:未知类型“Int”。 [注意:Int 是从 type-graphql 导入的]
  2. 字段“Query.posts”上的未知参数“光标”。
  3. 字段“Query.posts”的未知参数“limit”。

任何人都可以帮助解决如何以允许 graphql 生成类型的格式获取解析器吗?我在这里看到了一些描述使用浮点数而不是整数作为数字的帖子,但我认为这与文档所说的我应该能够实现的目标背道而驰。

Ben 展示了他如何检查 graphql 文档以查找查询对参数类型的期望。我无法从我的文档中获得相同的反馈。

this example 中,Arg for limit 的定义略有不同,如下所示:

@Arg("limit", type => Int) 限制:数字,

“类型”一词似乎没有在任何地方定义,此用例会生成一个错误,指出“类型已声明但未使用”。

我现在卡住了,因为我在 web 端删除了我的 node_modules 和 dist 文件夹,并试图重新运行 yarn。重新安装了 node_modules,但没有重新创建 dist 文件夹(我认为如果我可以成功运行:“graphql-codegen --config codegen.yml”(这是猜测),可能会发生这种情况。

所以现在我无法启动服务器来尝试再次运行该生成器。

【问题讨论】:

  • 嗨@xadm - 在这个指向另一个版本的帖子解析器的链接中,您是否发现了一些有用的东西?我尝试评论我的并使用这个,但是当我尝试运行 yarn gen 时仍然遇到同样的错误。
  • 只需运行/遵循一些工作示例/教程
  • 感谢@xadm 的建议。我正在尝试了解本教程的工作原理,以便我可以学习如何与 graphql 交互。这就是教程很有帮助的原因。我在您共享的解析器中没有发现任何有用的信息。感谢您建议我对其进行审查。虽然它确实扩展了教程文件,但它没有回答或提供任何可能有助于解决我发布的问题的见解。

标签: graphql typegraphql


【解决方案1】:

我不知道为什么这是必要的或它是如何工作的,但我删除了客户端 node_modules 文件夹和 dist 文件夹。我重新运行 yarn 以重新安装 node_modules(不确定如何重新创建 dist)。我关闭了所有东西,重新启动了 vs 代码工作区并能够生成类型。

这对我来说毫无意义。如果有人有任何技能来寻找发生这种事情的原因,我很想了解发生了什么。

【讨论】:

  • 这行得通吗?如果不是,那么这应该是评论而不是答案。
  • 试试这个:@Arg("limit", () =&gt; Int)
  • @cdaiga 它确实有效。我不知道如何或为什么
猜你喜欢
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 2014-04-10
  • 2014-08-17
  • 2020-11-19
相关资源
最近更新 更多