Перейти к содержанию

Валидация и обработка ошибок

Начало урока

Валидация и обработка ошибок

Отклоняйте плохой ввод рано и превращайте каждый сбой в чистый, предсказуемый ответ.

Главная идея: Сервер, который обрабатывает только «счастливый путь», — это демо, а не продукт. Реальные запросы приходят с пропущенными полями, неверными типами и неожиданными сбоями глубоко внутри кода. Валидация останавливает плохой ввод на пороге; обработка ошибок гарантирует, что когда что-то всё же ломается, клиент получает ясный, согласованный ответ вместо падения или утёкшего стека.
К концу этой темы вы сможете:
  • валидировать входящие данные на границе доверия — вручную и с помощью библиотеки схем,
  • сигнализировать о сбоях объектом Error и своим классом ошибки, несущим код статуса,
  • ловить асинхронные ошибки, чтобы они доходили до Express, а не роняли процесс,
  • написать один центральный middleware обработки ошибок, форматирующий каждую ошибку одинаково,
  • выбирать корректные HTTP-коды статуса и согласованную форму JSON для ошибок.

1. Две разные задачи

Их часто объединяют, но они решают разные проблемы:

  • Валидация — проактивна. Прежде чем обращаться к базе данных или выполнять бизнес-логику, вы проверяете, что ввод имеет правильную форму — нужные поля, нужные типы, разумные значения. Плохой ввод немедленно отклоняется с 400 Bad Request.
  • Обработка ошибок — реактивна. Даже с идеальным вводом бывают сбои: база недоступна, файл отсутствует, сторонний API не отвечает. Обработка ошибок решает, что увидит клиент, когда это случится.

Аналогия. Валидация — это охранник у двери, проверяющий документы: неверный документ — вас не пустят. Обработка ошибок — это аптечка внутри: что бы ни случилось, когда вы уже внутри, есть спокойная стандартная процедура вместо паники. Нужны обе.

Золотое правило, связывающее их: никогда не доверяйте вводу и никогда не позволяйте необработанной ошибке дойти до пользователя как сырое падение.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя