/
alt3rmann
/
LibreChat
Обзор
Документация
Войти
/
alt3rmann
/
LibreChat
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
api/server/controllers/ErrorController.js
40 строк
1 KB
Danny Avila
🛡️ : Security Enhancements (#1681)
30 янв 2024, 22:34
Не верифицирован
30 янв 2024, 22:34
972402e
Код
Авторство
О чём код?
const { logger } = require('~/config'); //handle duplicates const handleDuplicateKeyError = (err, res) => { logger.error('Duplicate key error:', err.keyValue); const field = `${JSON.stringify(Object.keys(err.keyValue))}`; const code = 409; res .status(code) .send({ messages: `An document with that ${field} already exists.`, fields: field }); }; //handle validation errors const handleValidationError = (err, res) => { logger.error('Validation error:', err.errors); let errors = Object.values(err.errors).map((el) => el.message); let fields = `${JSON.stringify(Object.values(err.errors).map((el) => el.path))}`; let code = 400; if (errors.length > 1) { errors = errors.join(' '); res.status(code).send({ messages: `${JSON.stringify(errors)}`, fields: fields }); } else { res.status(code).send({ messages: `${JSON.stringify(errors)}`, fields: fields }); } }; // eslint-disable-next-line no-unused-vars module.exports = (err, req, res, next) => { try { if (err.name === 'ValidationError') { return (err = handleValidationError(err, res)); } if (err.code && err.code == 11000) { return (err = handleDuplicateKeyError(err, res)); } } catch (err) { logger.error('ErrorController => error', err); res.status(500).send('An unknown error occurred.'); } };