К практике
Среднийtry/catchErrorОбработка ошибок
Среднийtry/catchErrorОбработка ошибок
Обработка ошибок
Перехватываем и нормализуем ошибки — синтаксические, валидационные, системные.
Нажми на любой элемент диаграммы для объяснения
Шаг 1 из 3
1
Типы ошибок в Node.js
В Node.js/Express возникают три вида ошибок:
Синтаксические — JSON.parse('bad') бросает SyntaxError.
Логические — код выполнился, но результат неверный.
Сетевые/внешние — БД недоступна, API вернул ошибку.
Для перехвата используй try/catch. Express поддерживает глобальный обработчик ошибок — функцию с четырьмя аргументами: (err, req, res, next).
javascript
// Глобальный обработчик ошибок (последний app.use)
app.use((err, req, res, next) => {
const normalized = normalizeError(err);
res.status(normalized.code).json({
ok: false,
error: normalized.message,
code: normalized.code,
});
});
// Маршрут с безопасным парсингом
app.post('/data', (req, res, next) => {
const raw = req.headers['content-type'] === 'text/plain'
? req.body.toString()
: JSON.stringify(req.body);
const result = safeParse(raw);
if (!result.ok) return next(new Error(result.error));
res.json({ received: result.data });
});