Подскажите как сделать валидацию и какие библиотеки используете ?
К примеру у меня есть модель категория у нее 2 поля name и url. name и url не могут быть пустыми и url уникальное поле.
У меня есть контроллер который достает нужные поля из запроса и передает их в сервис categoryService, я сделал таким образом, может есть какой то лучше способ:
async createCategory (data) {
const errors = saveCategoryValidation(data)
if (Object.keys(errors).length) {
const error = new Error('invalid category data')
error.errors = errors
throw error
}
const category = await knex('categories').insert(data)
return category
},
saveCategoryValidation:
export default async (data) => {
const messages = {}
if (_.isNil(data.name) || !data.name.length) {
messages.name = 'Name is required'
}
if (_.isNil(data.url) || !data.url.length) {
messages.name = 'Name is required'
} else {
const categories = await knex('categories')
.select('id')
.where('url', data.url)
if (categories.length) {
messages.url = 'Url already in use'
}
}
return messages
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей