Table of Contents
Jak efektivně zpracovávat vstupy formulářů pomocí Express-Validator v ExpressJs
Úvod
ExpressJs je populární framework Node.js pro vytváření webových aplikací a API. Při práci s formuláři na webu je nezbytné ověřit a vyčistit vstupy uživatele, aby se předešlo bezpečnostním rizikům a chybným datům. Express-Validator je middleware pro ExpressJs, který poskytuje robustní a snadno použitelné funkce pro validace vstupů. Tento článek poskytuje komplexní návod, jak efektivně zpracovávat vstupy formulářů pomocí Express-Validator v ExpressJs.
Základní instalace
Než začnete používat Express-Validator, musíte jej nainstalovat do svého projektu Node.js:
npm install express-validator
Poté v souboru aplikace importujte knihovnu Express-Validator:
js
const { check, validationResult } = require('express-validator');
Validační řady
Validační řady jsou základní stavební bloky pro validaci vstupů formuláře. Každá validační řada představuje konkrétní ověření, které se má provést na vstupu. Express-Validator poskytuje řadu vestavěných validačních řad, které pokrývají běžné scénáře, jako je povinnost, typ datových typů, rozsah hodnot a přizpůsobená pravidla. Zde jsou některé příklady validačních řad:
js
check('name').notEmpty().withMessage('Jméno nesmí být prázdné.')
.isLength({ min: 2 }).withMessage('Jméno musí mít délku alespoň 2 znaky.');
check('email').isEmail().withMessage('Zadaná e-mailová adresa není platná.');
check('password').isStrongPassword().withMessage('Heslo musí být silné.');
Ověření vstupů
Po nastavení validačních řad můžete ověřit vstupy formuláře v routách ExpressJs. Zde je příklad ověření dat příchozího požadavku POST:
js
const express = require('express');
const { check, validationResult } = require('express-validator');
const app = express();
app.use(express.json());
app.post('/submit-form', [
check('name').notEmpty().withMessage('Jméno nesmí být prázdné.'),
check('email').isEmail().withMessage('Zadaná e-mailová adresa není platná.')
], (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.mapped() });
}
// Vstupy formuláře jsou ověřeny a jsou připraveny k dalšímu zpracování.
});
Získání validačních chyb
Pokud validace vstupů selže, Express-Validator vrátí objekt s chybami. Můžete jej získat pomocí metody validationResult()
. Objekt s chybami obsahuje pole chyb, které lze zobrazit uživateli nebo použít k dalšímu zpracování.
Přizpůsobené validační pravidla
Kromě vestavěných validačních řad můžete také vytvářet vlastní přizpůsobená validační pravidla pro specifické požadavky. Express-Validator poskytuje rozhraní pro definování vlastních pravidl a jejich použití v validačních řadách. Zde je příklad vlastního validačního pravidla pro kontrolu, zda zadaný řetězec obsahuje pouze písmena:
js
const { check } = require('express-validator');
check('name').custom((value) => {
if (!/^[a-zA-Z]+$/.test(value)) {
throw new Error('Jméno smí obsahovat pouze písmena.');
}
return true;
});
Validace souborů
Express-Validator lze také použít k validaci vstupů souborů. Vestavěná validační řada fileCount()
ověřuje počet souborů a fileSize()
ověřuje velikost souboru.
Příklad použití
Následující příklad ukazuje, jak použít Express-Validator k validaci vstupů formuláře pro scénář registrace uživatele:
js
const express = require('express');
const { check, validationResult } = require('express-validator');
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.post('/register', [
check('name').notEmpty().withMessage('Jméno nesmí být prázdné.'),
check('email').isEmail().withMessage('Zadaná e-mailová adresa není platná.'),
check('password').isStrongPassword().withMessage('Heslo musí být silné.'),
check('confirmPassword').custom((value, { req }) => {
if (value !== req.body.password) {
throw new Error('Heslo a potvrzení hesla se neshodují.');
}
return true;
})
], (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.mapped() });
}
// Vstupy formuláře jsou ověřeny a jsou připraveny k dalšímu zpracování.
});
Závěr
Express-Validator je výkonný middleware pro ExpressJs, který poskytuje robustní a snadno použitelné funkce pro validace vstupů. Použitím validačních řad, vlastních validačních pravidel a podpory validace souborů můžete zajistit integritu dat a zabránit bezpečnostním zranitelnostem ve svých webových aplikacích. Integrací Express-Validator do svých projektů můžete zefektivnit zpracování vstupů formulářů, zlepšit uživatelský zážitek a zajistit bezpečnost svých aplikací.
Často kladené dotazy
Co je Express-Validator?
Express-Validator je middleware pro ExpressJs, který poskytuje funkce pro validace vstupů formuláře.
K čemu se používá Express-Validator?
Express-Validator se používá k ověřování a vyčištění vstupů formuláře, aby se předešlo chybám a bezpečnostním rizikům.
Jak nainstalovat Express-Validator?
Spusťte v terminálu příkaz npm install express-validator
.
Jak vytvořit validační řadu?
Použijte metodu check()
a uveďte název vstupu, ověření a případně vlastní zprávu o chybě.
Jak ověřit vstupy formuláře?
Do příslušné trasy ExpressJs přidejte validační řady a zavolejte metodu validationResult()
, abyste získali případné chyby ověření.
Jak vytvořit vlastní validační pravidla?
Použijte metodu custom()
v kombinaci s metodou check()
, abyste definovali vlastní validační logiku.
Jak ověřit vstupy souborů?
Použijte validační řady fileCount()
a fileSize()
k ověření počtu souborů a jejich velikosti.
Může Express-Validator ověřit sílu hesel?
Ano, Express-Validator má vestavěnou validační řadu isStrongPassword()
pro ověřování síly hesel.