gpt4 book ai didi

javascript - 嵌套js可选body参数

转载 作者:行者123 更新时间:2023-12-04 17:21:15 26 4
gpt4 key购买 nike

嗨,我有嵌套应用程序 dto:

export class TestDto {
@IsNotEmpty()
id: number;

@IsNotEmpty()
slug: string;

@IsNotEmpty()
size: number;
}
和发布请求:
  @Post(':id/start')
async startTest(
@Param('id') id: number,
@Request() req,
@Body() testDto?: TestDto
): Promise<RoomDto | string> {
return await this.roomsService.startTest(id, testDto);
}
我想从 body 中选择 testDto ,但是在发送请求时出现错误:
{
"statusCode": 400,
"message": [
"slug should not be empty",
"size should not be empty"
],
"error": "Bad Request"
}
如何实现这样的目标?

最佳答案

您必须将 IsNotEmpty 装饰器更改为 IsOptional,当您将问号添加到参数时,您告诉 Typescript 该值可以是未定义的,并且在运行时间中并不重要。
您可以在此处查看允许的装饰器:https://github.com/typestack/class-validator#validation-decorators
结果 DTO 将是这样的:

export class TestDto {
@IsNotEmpty()
id: number;

@IsOptional()
slug?: string;

@IsOptional()
size?: number;
}

请记住从 class-validator 包中导入 IsOptional。

关于javascript - 嵌套js可选body参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66122115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com