AdonisJS — это мощная веб-платформа Node.js, предоставляющая структурированную и масштабируемую среду для создания веб-приложений. Одной из его ключевых особенностей является встроенный механизм проверки, который позволяет разработчикам определять и обеспечивать соблюдение правил пользовательского ввода. В этой статье мы рассмотрим различные методы и приемы использования валидаторов в AdonisJS 5, а также приведем примеры кода.
- Базовая проверка:
AdonisJS 5 предоставляет простой и интуитивно понятный синтаксис для определения правил проверки. Давайте рассмотрим пример, в котором мы хотим проверить форму регистрации пользователя с полями имени и адреса электронной почты.
import { schema, rules } from '@adonisjs/validator'
const validationSchema = schema.create({
name: schema.string(),
email: schema.string({}, [
rules.email(),
rules.unique({ table: 'users', column: 'email' }),
]),
})
const data = {
name: 'John Doe',
email: 'john.doe@example.com',
}
const validatedData = await schema.validate(data, validationSchema)
В приведенном выше фрагменте кода мы импортируем необходимые модули из пакета @adonisjs/validator
. Затем мы определяем схему проверки с помощью метода schema.create()
, указывая правила для каждого поля. Наконец, мы проверяем входные данные на соответствие схеме с помощью метода schema.validate()
.
- Пользовательские правила проверки:
AdonisJS 5 позволяет вам определять собственные правила проверки в соответствии с конкретными требованиями вашего приложения. Давайте создадим собственное правило, которое проверяет, является ли данное значение действительным номером телефона.
import { rules } from '@adonisjs/validator'
rules.custom('phone', (value, _, { error }) => {
if (!isValidPhoneNumber(value)) {
throw error('Invalid phone number format')
}
})
В приведенном выше примере мы определяем специальное правило под названием 'phone'
, используя метод rules.custom()
. Функция правила получает значение поля, объект контекста и обработчик ошибок. Если номер телефона недействителен, мы выдаем ошибку с помощью функции error()
.
- Условная проверка:
AdonisJS 5 позволяет выполнять условную проверку на основе определенных условий. Давайте рассмотрим сценарий, в котором мы хотим проверять поле пароля только в том случае, если пользователь выбирает определенный метод аутентификации.
import { schema, rules } from '@adonisjs/validator'
const validationSchema = schema.create({
authMethod: schema.string(),
password: schema.string.optional({}, [
rules.when('authMethod', (authMethod) => authMethod === 'email', [
rules.required(),
rules.minLength(8),
]),
]),
})
В приведенном выше фрагменте кода мы используем метод rules.when()
для условного применения правил проверки к полю password
на основе значения authMethod
поле.
- Очистка:
AdonisJS 5 предоставляет мощные возможности очистки для очистки и нормализации входных данных. Давайте рассмотрим пример, в котором мы хотим очистить ввод пользователя, удалив все начальные и конечные пробелы.
import { sanitizations } from '@adonisjs/validator'
const data = {
name: ' John Doe ',
email: 'john.doe@example.com',
}
const sanitizedData = await schema.sanitize(data, {
name: sanitizations.trim(),
})
В приведенном выше фрагменте кода мы импортируем модуль sanitizations
из @adonisjs/validator
. Мы определяем правила очистки с помощью метода sanitizations.trim()
и применяем их к полю name
с помощью метода schema.sanitize()
.
В этой статье мы рассмотрели различные методы и приемы использования валидаторов в AdonisJS 5. Мы рассмотрели базовую проверку, пользовательские правила проверки, условную проверку и очистку данных. Валидатор AdonisJS 5 предоставляет гибкое и надежное решение для обеспечения целостности и правильности ввода данных пользователем в ваших веб-приложениях.