Определите свойство тела запроса @Body ('property) как необязательное - PullRequest
0 голосов
/ 11 апреля 2020

Я использую Nest JS и пакет class-validator.

В следующей функции должен быть создан пользователь. У вас должна быть возможность добавить бронирование к запросу.

@Post()
async create(@Body('user') userToCreate: createUserDTO, @Body('booking') bookingToCreate: createBookingDTO | undefined): Promise<User> {
    return await this.usersService.create(userToCreate, bookingToCreate);
  }

Если в запросе нет поля «бронирование», его значение равно undefined. Я подтвердил это с помощью typeof req.body.booking === 'undefined'.

Вместо того, чтобы принимать 'undefined' в качестве действительного значения, глобальная ValidationPipe вызывает класс-валидатор и жалуется, что резервирование не соответствует createBookingDTO - логически.

Как я могу пометить @Body как необязательный, чтобы проверка пропускалась, если значение не существует и, следовательно, 'undefined' допустимо?

Большое спасибо!

...