Библиотека Validator.js распространяется через npm и используется как в браузере, так и в серверных приложениях на Node.js.
npm install validator
yarn add validator
pnpm add validator
После установки пакет появляется в каталоге
node_modules, а информация о зависимости автоматически
записывается в package.json.
Пример:
{
"dependencies": {
"validator": "^13.15.15"
}
}
Проверка установленной версии выполняется через менеджер пакетов.
npm list validator
yarn list validator
Validator.js поддерживает несколько способов подключения в зависимости от используемого типа модулей.
Используется в классических Node.js-проектах.
const validator = require('validator');
После подключения становятся доступны методы библиотеки.
const validator = require('validator');
console.log(validator.isEmail('admin@example.com'));
Результат:
true
Современный синтаксис JavaScript использует import.
{
"type": "module"
}
import validator from 'validator';
Пример использования:
import validator from 'validator';
const result = validator.isURL('https://example.com');
console.log(result);
Типичная структура проекта с Validator.js:
project/
│
├── node_modules/
├── src/
│ ├── app.js
│ └── validators/
│ └── userValidator.js
├── package.json
└── package-lock.json
import validator from 'validator';
const email = 'user@mail.com';
if (validator.isEmail(email)) {
console.log('Email корректен');
} else {
console.log('Email некорректен');
}
Запуск:
node app.js
Validator.js позволяет импортировать только необходимые функции. Это уменьшает размер итоговой сборки.
import isEmail from 'validator/lib/isEmail.js';
Использование:
import isEmail from 'validator/lib/isEmail.js';
console.log(isEmail('admin@test.com'));
Validator.js можно подключать в frontend-проектах.
Установка:
npm install validator
Использование:
import validator from 'validator';
const value = 'https://google.com';
console.log(validator.isURL(value));
npm install validator webpack webpack-cli --save-dev
import validator from 'validator';
console.log(
validator.isEmail('contact@example.com')
);
npx webpack
Validator.js поддерживает TypeScript.
npm install validator
npm install --save-dev @types/validator
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"strict": true
}
}
import validator from 'validator';
const email: string = 'user@example.com';
const valid: boolean = validator.isEmail(email);
console.log(valid);
Validator.js часто используется в backend-приложениях.
npm install express validator
import express from 'express';
import validator from 'validator';
const app = express();
app.use(express.json());
app.post('/register', (req, res) => {
const { email } = req.body;
if (!validator.isEmail(email)) {
return res.status(400).json({
error: 'Некорректный email'
});
}
res.json({
success: true
});
});
app.listen(3000);
<form id="form">
<input type="text" id="email">
<button>Отправить</button>
</form>
import validator from 'validator';
const form = document.getElementById('form');
form.addEventListener('submit', (event) => {
event.preventDefault();
const email = document
.getElementById('email')
.value;
if (!validator.isEmail(email)) {
alert('Ошибка email');
return;
}
alert('Форма отправлена');
});
Минимальный тест:
import validator from 'validator';
console.log(
validator.isEmail('test@mail.com')
);
Ожидаемый результат:
true
Если выводится true, библиотека подключена
корректно.
Cannot find module 'validator'Причины:
node_modules;Решение:
npm install validator
SyntaxError: Cannot use import statement outside a moduleПричина:
Node.js работает в режиме CommonJS.
Решение:
{
"type": "module"
}
или использование require.
Could not find a declaration file for module 'validator'
Решение:
npm install --save-dev @types/validator
{
"name": "validator-project",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node src/app.js",
"dev": "node --watch src/app.js"
},
"dependencies": {
"validator": "^13.15.15"
}
}
Для автоматического перезапуска сервера при изменениях файлов.
npm install --save-dev nodemon
{
"scripts": {
"dev": "nodemon src/app.js"
}
}
npm run dev
Хорошей практикой считается вынос проверок в отдельные файлы.
import validator from 'validator';
export function validateEmail(email) {
return validator.isEmail(email);
}
export function validatePassword(password) {
return validator.isLength(password, {
min: 8
});
}
import {
validateEmail,
validatePassword
} from './validators/userValidator.js';
console.log(
validateEmail('admin@mail.com')
);
console.log(
validatePassword('12345678')
);
Validator.js часто используется в проектах с жёсткими стандартами качества кода.
npm install --save-dev eslint
npx eslint --init
npm install --save-dev prettier
npx prettier . --write
Validator.js требует установленного Node.js.
Проверка версии:
node -v
Проверка npm:
npm -v
Рекомендуемая конфигурация:
| Инструмент | Версия |
|---|---|
| Node.js | 18+ |
| npm | 9+ |
| TypeScript | 5+ |
mkdir validator-demo
cd validator-demo
npm init -y
npm install validator
import validator from 'validator';
const phone = '+77001234567';
console.log(
validator.isMobilePhone(phone, 'kk-KZ')
);
node app.js
В крупных проектах библиотека обычно устанавливается в корневом workspace.
Пример:
npm install validator -w backend
Пример для TypeScript:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@validators/*": ["validators/*"]
}
}
}
Использование:
import { validateEmail } from '@validators/userValidator';
Полный импорт:
import validator from 'validator';
Точечный импорт:
import isURL from 'validator/lib/isURL.js';
Точечный импорт уменьшает размер frontend-сборки и ускоряет tree shaking.
Вывод всех методов:
import validator from 'validator';
console.log(Object.keys(validator));
Пример результата:
[
'isEmail',
'isURL',
'isUUID',
'isMobilePhone',
'isDate'
]
npm install --save-dev jest
import validator from 'validator';
test('email validation', () => {
expect(
validator.isEmail('admin@test.com')
).toBe(true);
});
Наиболее распространённые редакторы:
Полезные расширения:
.envValidator.js часто применяется вместе с dotenv.
npm install dotenv
PORT=3000
import dotenv from 'dotenv';
dotenv.config();
console.log(process.env.PORT);
Комплексная проверка:
import validator from 'validator';
const data = {
email: 'admin@example.com',
url: 'https://example.com',
uuid: '550e8400-e29b-41d4-a716-446655440000'
};
console.log(
validator.isEmail(data.email)
);
console.log(
validator.isURL(data.url)
);
console.log(
validator.isUUID(data.uuid)
);
Ожидаемый результат:
true
true
true