Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
joi_-_validacija [2024/06/08 08:14] tro |
joi_-_validacija [2024/06/08 08:15] (текущий) tro |
||
|---|---|---|---|
| Строка 86: | Строка 86: | ||
| </ | </ | ||
| + | Зверни увагу, що ми використовуємо**validateAsync** , тому що це дозволить нам виконувати асинхронні операції під час валідації, | ||
| + | Але таке рішення буде перенавантажувати логіку в тілі контроллера, | ||
| + | |||
| + | < | ||
| + | // src/ | ||
| + | |||
| + | import createHttpError from ' | ||
| + | |||
| + | export const validateBody = (schema) => async (req, res, next) => { | ||
| + | try { | ||
| + | await schema.validateAsync(req.body, | ||
| + | abortEarly: false, | ||
| + | }); | ||
| + | next(); | ||
| + | } catch (err) { | ||
| + | const error = createHttpError(400, | ||
| + | errors: err.details, | ||
| + | }); | ||
| + | next(error); | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | </ | ||