Использование валидаторов классов на схеме с проверкой внешнего интерфейса

Я нахожусь в процессе проверки формы обучения.

Из того, что я собрал, проверка ввода формы должна выполняться на внешнем интерфейсе, тогда как проверка базы данных и безопасности должна выполняться на бэкэнде. (Это правильно?).

Я не понимаю смысла валидаторов классов в бэкэнд-схемах, таких как:

  @Field()
  @IsEmail()
  email: string;

  @Field()
  @IsString()
  @Length(4)
  @IsLowercase()
  password: string;

Если наилучшей практикой является проверка входных данных во внешнем интерфейсе, действительно ли я дублирую код проверки с помощью этих декораторов?


person Joeyboy    schedule 19.01.2021    source источник


Ответы (1)


Проверка входных данных во внешнем интерфейсе может дать пользователю мгновенную обратную связь о том, какие поля могут быть неправильными и что необходимо изменить. Проверка входных данных в бэкенде гарантирует, что вы получите действительные значения для работы. Фронтенд-валидацию можно обойти, бэкэнд-валидацию — нет.

Внешняя проверка предназначена для UX, внутренняя проверка предназначена для того, чтобы убедиться, что вы получаете действительные значения.

person EinArzt    schedule 24.02.2021