Слои обработки: 1) Репозиторий ловит DB ошибки и конвертирует в domain ошибки (UniqueConstraintError → EmailAlreadyExists). 2) Сервис обрабатывает domain ошибки. 3) Контроллер конвертирует в HTTP ответы. Prisma: catch (e) { if (e instanceof PrismaClientKnownRequestError && e.code === "P2002") throw new ConflictError("Email already exists") }. Никогда не возвращай raw DB ошибки клиенту — они содержат детали схемы. Логируй полную ошибку, клиенту — generic message. Транзакционные ошибки (deadlock) — ретраить автоматически.
Как правильно обрабатывать ошибки базы данных в API?
Middle
301 просмотровAFK Offer AI
Как настроить тестовую базу данных в Node.js проекте?