javascript - 如何在 Nest.js 中获取嵌套的 URL 查询

标签 javascript node.js typescript nestjs routeparams

我有 NestJS 应用程序,我必须从 URL 获取查询。问题是我的 creationDate 是一个对象,我无法通过@Query 将它作为嵌套对象。
以下是路线示例:

xxx/yyy/orders?key1=value&key2=value&key3=value&createdAt[lte]=2021-07-01&createdAt[gte]=2011-03-30&orderBy=desc&limit=500
我正在尝试将 createdAt[lte] 和 createdAt[gte] 作为嵌套对象
export interface QueryI {
key1: string;
key2: string;
key3: string;
key4: string;
createdAt: {
    lte: string,
    gte: string,
}
orderBy: 'desc' | 'asc';
limit: number;
}
这是我的 Controller :
@Get('route')
getAll(
    @Query() query: QueryI): Promise<void> { 
    return this.myService.findAll(query);
}
但这给了我以下结果
{

key1: 'value',        
  key2: 'value',
  key3: 'value',       
  key4: 'value',
  'createdAt[lte]': 'some date',
  'createdAt[gte]': 'some date',
  orderBy: 'desc',
  limit: '500'

}
我已经尝试过 JSON.stringify 并在 SOW 上咨询过类似的问题,但没有运气。
谢谢

最佳答案

开关QueryI从接口(interface)到类。
在 NestJS 7 上工作。
用于测试的网址 http://localhost:3000/api/v1/store/search?nestedObj[key1]=yolo&nestedObj[key2]=sup%20bruh&el=test 使用 DTO

export class TestDto {
  el: string;
  nestedObj: {
    key1: string;
    key2: string;
  };
}
Controller
@Controller('v1/store')
@UsePipes(new ValidationPipe({ exceptionFactory: getFormattedErrors }))
@UseFilters(DomainExceptionFilter)
export class TestController{
@Get('search')
  public async searchStore(@Query() testDto: TestDto) {
    console.log(testDto);
    return 1;
  }
}
// Console log - { nestedObj: { key1: 'yolo', key2: 'sup bruh' }, el: 'test' }

关于javascript - 如何在 Nest.js 中获取嵌套的 URL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69735754/

相关文章:

javascript - 在指令模板中传递范围 - AngularJs

javascript - 正则表达式在 JavaScript 中无法正常工作

mysql - 如何在使用 NodeJS 和 Express 时创建 MySQL 连接池?

reactjs - 类型 'string' 不可分配给类型 '"inherit"| "initial"| "unset"| "fixed"| "absolute"| "static"| "relative"| "sticky"'

我的 Angular 2 应用程序中 typescript 中的日期

javascript - 不需要响应的跨域 AJAX?

javascript - 修改内容字符串返回[object Window]而不是 "real"内容

node.js - 没有 redirect_uri 的 Oauth2 流程

javascript - stub process.nextTick 以传递参数

javascript - 禁用某些选择复选框上的按钮