Вступить в клуб →
средняявопросREST API на NestJS и Express

Детали ошибки БД утекают клиенту в ответе 500

При регистрации с уже занятой почтой клиент получает ответ:

{
  "statusCode": 500,
  "message": "duplicate key value violates unique constraint \"users_email_key\"",
  "stack": "QueryFailedError: ..."
}

Поддержка жалуется на непонятные обращения, а безопасность — на утечку схемы БД. Как правильно перестроить обработку?

  • Убрать уникальный индекс в базе и проверять занятость почты отдельным запросом перед вставкой — тогда ошибки не будет
  • Оставить текст как есть, но заменить код на 400: мониторинг перестанет считать это ошибкой сервера, а причина видна клиенту
  • Отдавать 200 с полем `error` и текстом драйвера, а разбор сообщения оставить на клиенте — контракт станет единообразным
  • Ловить нарушение уникальности и отдавать 409 с понятным сообщением, а стектрейс писать только в лог

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела