Я использую Nest Js Framework для своего проекта. В моем контроллере я принимаю запрос POST и через ValidationPipe я преобразую тело в мой CreateHouseDTO. ValidationPipe использует белый список и преобразование.
Когда я пытаюсь использовать API с JSON следующим образом:
{
"name": "Test",
"floors": [
{
"name": "floor1",
"rooms": [
{
"name": "room1"
},
{
"name": "room2"
}
]
}
]
}
Это то, что регистрирует мое приложение (вывод console.log):
CreateHouseDTO{
name:'Test',
floors[ {} ]
}
Он даже проверяет вложенные объекты, когда я допускаю в них некоторые ошибки. Например, если я установлю имя свойство в Этаж объект на Нуль или на некоторое число без кавычек.
Is это баг или я что то не так делаю? Пожалуйста, помогите мне.
Мой код:
//My DTOs
import {ValidateNested, IsString, IsArray} from "class-validator";
import {Body, Controller, Post} from "@nestjs/common";
export class CreateHouseDTO {
@IsNotEmpty()
@IsString()
public name?: string;
@ValidateNested({each: true})
@IsArray()
@IsNotEmpty()
public floors?: CreateFloorDTO[];
}
export class CreateFloorDTO {
@IsString()
@IsNotEmpty()
public name?: string;
@ValidateNested({each: true})
@IsNotEmpty()
@IsArray()
public rooms?: CreateRoomDTO[];
}
export class CreateRoomDTO {
@IsString()
@IsNotEmpty()
public name?: string;
}
//My Controller
@Controller("house")
export class HouseController {
@Post()
async create(
@Body()
body: CreateHouseDTO
) {
console.log(body); //output I mentioned
return body;
}
}