Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NestJS将@Query()反序列化为具有复杂类型的DTO_Node.js_Typescript_Query String_Nestjs_Dto - Fatal编程技术网

Node.js NestJS将@Query()反序列化为具有复杂类型的DTO

Node.js NestJS将@Query()反序列化为具有复杂类型的DTO,node.js,typescript,query-string,nestjs,dto,Node.js,Typescript,Query String,Nestjs,Dto,在研究NestJS时,我遇到了一个问题,我有以下DTO: export default class SearchNotesDto { query: string; createdAfter: Date; createdBefore: Date; } 当向端点发出get请求时,我希望获取该端点,该端点由控制器中的以下函数处理: @Get() getNotes(@Query() searchNotesDto: SearchNotesDto): Note[] { if (Object

在研究NestJS时,我遇到了一个问题,我有以下DTO:

export default class SearchNotesDto {
  query: string;
  createdAfter: Date;
  createdBefore: Date;
}
当向端点发出
get
请求时,我希望获取该端点,该端点由控制器中的以下函数处理:

@Get()
getNotes(@Query() searchNotesDto: SearchNotesDto): Note[] {
  if (Object.keys(searchNotesDto).length) {
    return this.notesService.searchNotes(searchNotesDto);
  }
  return this.notesService.getAllNotes();
}

我的问题是
createdAfter
createdBefore
SearchNotesTo
中的字符串,我希望使用
Date
对象,是否有办法将这些字段隐式转换为
日期

@Query
将所有属性序列化为
字符串类型,因为这就是查询字符串在HTTP请求方面的工作方式。您需要使用
管道
将查询转换为正确的数据形状

导出类SearchNotePipe实现PipeTransform{
转换(值:任意,元数据:ArgumentMetadata){
//值将是您的'SearchNotesTo'`
const notesDto=新的SearchNotesDto();
//在这里进行转换
回条收件人;
}
}

@Query
将所有属性序列化为类型
字符串
,因为这就是查询字符串在HTTP请求中的工作方式。您需要使用
管道
将查询转换为正确的数据形状

导出类SearchNotePipe实现PipeTransform{
转换(值:任意,元数据:ArgumentMetadata){
//值将是您的'SearchNotesTo'`
const notesDto=新的SearchNotesDto();
//在这里进行转换
回条收件人;
}
}

我知道查询字符串是一个字符串,我只是在寻找一种处理序列化的干净方法,管道就是这种方法-谢谢!我知道查询字符串是一个字符串,我只是在寻找一种干净的方法来处理序列化,管道就是这种方法-谢谢!