graphql - GraphQLDocumentError:未知类型“Int”
问题描述
我正在尝试遵循 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();
}
当我尝试用它生成类型时,它失败了。我收到错误消息:
- GraphQLDocumentError:未知类型“Int”。[注意:Int 是从 type-graphql 导入的]
- 字段“Query.posts”上的未知参数“光标”。
- 字段“Query.posts”上的未知参数“限制”。
任何人都可以帮助如何以允许 graphql 生成类型的格式获取解析器吗?我在这里看到了一些描述使用浮点数而不是整数作为数字的帖子,但我认为这与文档所说的我应该能够实现的目标背道而驰。
Ben 展示了他如何检查 graphql 文档以查找查询对参数类型的期望。我无法从我的文档中获得相同的反馈。
在此示例中,用于限制的 Arg 的定义略有不同,如下所示:
@Arg("limit", type => Int) 限制:数字,
单词“type”似乎没有在任何地方定义,这个用例会生成一个错误,指出“type is declared but not used”。
我现在卡住了,因为我删除了 web 端的 node_modules 和 dist 文件夹,并试图重新运行 yarn。重新安装了 node_modules,但没有重新创建 dist 文件夹(我认为如果我可以成功运行:“graphql-codegen --config codegen.yml”(这是猜测),可能会发生这种情况。
所以现在我无法启动服务器来尝试再次运行该生成器。
解决方案
我不知道为什么这是必要的或它是如何工作的,但我删除了客户端 node_modules 文件夹和 dist 文件夹。我重新运行 yarn 以重新安装 node_modules (不确定如何重新创建 dist)。我关闭了所有东西,重新启动了 vs 代码工作区并能够生成类型。
这对我来说毫无意义。如果有人有任何技能来寻找这种事情发生的原因,我很想了解发生了什么。
推荐阅读
- java - 错误; java.lang.IllegalStateException:提交响应后无法创建会话
- c# - INotifyPropertyChanged ListView
- python - 如何在不使用 multiprocessing.pool 的情况下安全地限制无进程运行
- reporting-services - SSRS“扁平化”sql查询
- python - Python:在CNN中使用分类交叉奖杯对多个对象进行分类的问题
- android - 如何从 ARCore NDK 中的 ArCamera 的 Pose 获取 Matrix4x4?
- php - Laravel 使用 GroupBy 显示日期/计数
- xml - 将属性中的分隔行转换为 ant 中的逗号分隔字符串
- java - 安全存储用户邮箱的密码
- c - Polyspace 发出关于系统函数使用系统定义参数标志的警报