Это старая версия документа!
JOI - валідація
[[https://github.com/hapijs/joi/|joi - це бібліотека для валідації даних в JavaScript-середовищі, зокрема в Node.js.]
1. Визначення схем (Schema definition): ви можете описати повністю схеми для об'єктів, які бажаєте валідувати, використовуючи методи Joi.object() та Joi.array() для структур та методи для примітивів (числа, рядки, бульові значення тощо). Схеми є семантично зрозумілими, і ви легко зможете зрозуміти, що робить кожне з правил. Переглянути список усіх доступних правил можна в офіційній документації. Створимо схему валідації для об’єкта при створенні нового студента:
// src/validation/students.js
import Joi from 'joi';
export const createStudentSchema = Joi.object({
name: Joi.string().min(3).max(30).required(),
email: Joi.string().email().required(),
age: Joi.number().integer().min(6).max(16).required(),
gender: Joi.string().valid('male', 'female', 'other').required(),
avgMark: Joi.number().min(2).max(12).required(),
onDuty: Joi.boolean(),
});
2. Використання методів валідації: після визначення схеми ви можете використовувати на ній методи валідації, такі як validate або validateAsync, для перевірки об'єктів даних на відповідність цій схемі.
const dataToValidate = {
name: 'John Doe',
email: 'john.doe@example.com',
age: 12,
gender: 'male',
avgMark: 10.2,
};
const validationResult = createStudentSchema.validate(dataToValidate);
if (validationResult.error) {
console.error(validationResult.error.message);
} else {
console.log('Data is valid!');
}