Jak efektivně zpracovávat vstupy formulářů pomocí Express-Validator v ExpressJs

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:

  Jezte svou zeleninu z fotografie analyzuje, co máte na talíři [Paid]

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.