Rof*_*Lox 1 typescript class-validator nestjs
我正在为我的项目使用 NestJs 框架。在我的控制器中,我接受 POST 请求,并通过 ValidationPipe 将 body 转换为我的 CreateHouseDTO。ValidationPipe 正在使用白名单和转换。
当我像这样使用 JSON 尝试 api 时:
{
"name": "Test",
"floors": [
{
"name": "floor1",
"rooms": [
{
"name": "room1"
},
{
"name": "room2"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序记录的内容(console.log 输出):
CreateHouseDTO{
name:'Test',
floors[ {} ]
}
Run Code Online (Sandbox Code Playgroud)
当我在嵌套对象中犯一些错误时,它甚至会验证嵌套对象。例如,如果我将Floor对象中的name属性设置为Null或某个没有引号的数字。
这是一个错误还是我做错了什么?请帮我。
我的代码:
{
"name": "Test",
"floors": [
{
"name": "floor1",
"rooms": [
{
"name": "room1"
},
{
"name": "room2"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
你应该这样做:
export class CreateHouseDTO {
@IsNotEmpty()
@IsString()
public name?: string;
@ValidateNested({each: true})
@IsArray()
@IsNotEmpty()
@Type(()=>CreateFloorDTO)
public floors?: CreateFloorDTO[];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |