Проверка данных формы в Node.js с помощью Validator.js
Практически каждый веб-сайт включает сбор пользовательского ввода с помощью HTML-форм. Каждый раз, когда мы собираем пользовательские данные, мы должны их проверять. В компьютерных науках проверка данных - это процесс проверки того, являются ли введенные данные разумными и обоснованными.
Рассмотрите возможность разработки формы для подписки по электронной почте. В этом случае мы хотим проверить, соответствует ли отправленное электронное письмо общему формату, например username@randomMail.com
. Без проверки злоумышленники могут вводить бесполезные значения или даже выполнять SQL-инъекции.
В этой статье мы будем выполнять проверку данных формы с помощью Validator.js - облегченного пакета NPM, созданного именно для этой цели.
Установка Validator.js
Давайте создадим каталог для нашего проекта с именем string-validator
, переместимся в него, создадим index.js
как точку входа и инициализируем проект Node с настройками по умолчанию, используя npm
:
mkdir string-validator
cd string-validator
npm init -y
Затем давайте выполним:
touch index.js
После инициализации проекта мы можем установить пакет Validator.js
, используя:
npm install validator
Проверка данных формы с помощью Validator.js
Рассмотрим приложение для продажи книг, в котором пользовательский ввод сначала собирается с помощью HTML-формы. Затем эти данные отправляются в формате JSON на сервер для дальнейшей обработки. Давайте посмотрим, как для этого можно выполнить проверку строки.
Допустим, это данные, которые отправляются из внешнего интерфейса. Сохраним эти данные в файл index.js
. Также подключим Validator.js
в наш файл:
const validator = require("validator")
const data = {
"gender": "male",
"name": {
"title": "mr",
"first": "brad",
"last": "gibson"
},
"countryCode": "IE",
"postalCode": "93027",
"email": "brad.gibson@example.com",
"cell": "081-454-0666",
"dob": "1993-07-20T09:44:18.674Z",
"creditCardNumber": "4539415755005206",
"book": {
"title": "Harry Potter and the Deathly Hallows",
"author": "Rowling, J. K.",
"isbn": "9780545010221",
"isbnVersion": "13"
}
}
Validator.js имеет множество предустановленных функций для проверки действительности различных входных данных, таких как кредитные карты, мобильные телефоны, электронные письма, почтовые индексы и т.д.
Прежде всего, давайте проверим, предоставляет ли пользователь действительные данные кредитной карты. Это можно сделать с помощью:
console.log(validator.isCreditCard(data.creditCardNumber)); // true
Для доставки книги должен быть действительный почтовый индекс. Итак, давайте проверим это, используя:
console.log(validator.isPostalCode(data.postalCode, data.countryCode)) // false
Подтвердить номер телефона можно с помощью:
console.log(validator.isMobilePhone(data.cell, `en-${data.countryCode}`)); // false
Подтверждение адреса электронной почты можно выполнить с помощью:
console.log(validator.isEmail(data.email)) // true
Кроме того, мы можем выполнить проверку ISBN, используя:
console.log(validator.isISBN(data.book.isbn, data.book.isbnVersion)) // true
Затем мы можем предложить пользователю повторно ввести любую недопустимую информацию, чтобы убедиться, что у нас есть чистые и работоспособные данные.
Вывод
В этой статье мы рассмотрели NPM-пакет Validator.js - легкий пакет, используемый для проверки данных и строк.