РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsPmVdInr 77 of 168 menu
◀ ▶

Введение в валидацию в Nest

Пусть клиент присылает в теле запроса любой объект, а метод принимает его как есть. Неверный тип или лишнее поле дойдёт до кода страницы и сломает работу там, где проверку ещё не успели сделать.

Валидация отделяет приём данных от их разбора. Сначала объект сверяют со схемой: какие поля обязательны, какого они типа и какие значения допустимы. Только после успешной проверки метод получает уже готовый объект с нужными полями.

В этом разделе схему пишут на Zod четвёртой версии. Она умеет отдавать результат через Standard Schema, общий формат для разных библиотек. Свой канал на маршруте читает тело, вызывает проверку и либо передаёт объект дальше, либо отвечает отказом.

Классы с декораторами полей и встроенный канал фреймворка здесь не используют. Правила лежат в одном файле схемы, а на Body вешают канал со ссылкой на эту схему. Так проще менять поля и не дублировать типы в нескольких местах.

На сайте с постами проверка нужна до сохранения новой записи: клиент не должен прислать пустое название или число вместо текста.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить