javascript - 如何在nestjs中访问@ResolveField中的@Args()

标签 javascript node.js nestjs

我有一个从数据库获取项目的查询,其参数如下所示,用于过滤项目。我如何在 @resolveField 中使用相同的参数来过滤项目的表单值

@Query(() => [Project])
async getProjects(@Args() projectArgs: ProjectArgs) {
  return await this.projectsService.find(projectArgs);
}

@ResolveField("formValues", () => [FormValues])
async getFormValues(@Parent() project: Project) {
  const { id } = project;
  return await this.formsService.findValues({ projectId: id});
}

最佳答案

我之前就遇到过这个问题,通过彻底的搜索,我得出的结论是,最好的、可扩展的方法是为字段解析器本身定义参数。下面是具体操作方法

@ResolveField("formValues", () => [FormValues])
async getFormValues(@Args() projectArgs: ProjectArgs) {
  ..../////
}

这样,您就必须像在父查询中传递参数一样传递参数。或者,如果您不想过滤表单值,则可以将它们省略

您还可以使用其他方法。其中之一是将信息设置为

@Query(() => [Project])
async getProjects(@Args() projectArgs: ProjectArgs, @Info() info) {
  info.variableValues.some_key = value
  return await this.projectsService.find(projectArgs);
}

但这不会扩展并使其紧密耦合

关于javascript - 如何在nestjs中访问@ResolveField中的@Args(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70737757/

相关文章:

javascript - 在 Node 中导出函数时有什么方法可以停止重复吗?

javascript - 如何使用箭头键在gridview中转到不同的文本框

javascript - 错误 : Request failed with status code 400. 在 POSTMAN 和应用程序中发送之间的差异

javascript - 如何导出类的命名实例?

javascript - 是否可以使用 NodeJS 更改任何应用程序的图标

typescript - Nest.js Fastify 测试TypeError : app. address is not a function

javascript - 如何更新 es6 数组中的元素?

javascript - 奇怪的返回没有标志的 javascript 正则表达式 'g'

typescript - 如何使用 Nestjs 和 apollo 服务器拼接多个远程模式

node.js - 在nestjs中启动应用程序后是否可以更改CacheModule ttl?