Validazione dei dati in Javascript con Joi

Mattepuffo's logo
Validazione dei dati in Javascript con Joi

Validazione dei dati in Javascript con Joi

Joi è una libreria che ci permette di validare i dati in Javascript.

Teoricamente può essere in qualsia ambiente, da Node.js ad Angular, ecc.

Noi facciamo un test proprio in Node.js.

Per installarla possiamo usare npm:

$ npm i joi

A questo punto la prima cosa da fare è creare uno schema di validazione.

E poi passare i datialla funzione validate:

const joi = require('joi');

const schema = joi.object({
    username: joi.string()
        .min(3)
        .required(),

    email: joi.string()
        .email({
            minDomainSegments: 2,
            tlds: {allow: ['com', 'it']}
        })
        .required(),

    password: joi.string()
        .pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
        .min(10)
        .required(),

    password_repeat: joi.ref('password')
});

console.log(schema.validate({username: 'abc', email: 'a@a.it'}));
console.log('-----');
console.log(schema.validate({username: 'abc', email: 'a@a.eu'}));
console.log('-----');
console.log(schema.validate({email: 'a@a.eu'}));
console.log('-----');
console.log(schema.validate({username: 'abc', email: 'a@a.it', password: '123'}));
console.log('-----');
console.log(schema.validate({username: 'abc', email: 'a@a.it', password: '123kkk7989', password_repeat: '444'}));
console.log('-----');
console.log(schema.validate({username: 'abc', email: 'a@a.it', password: '123kkk7989', password_repeat: '123kkk7989'}));

Vi ho messo vari esempi per visualizzare gli errori.

Comunque la libreria risponde sempre in formato JSON; molto utile nel caso si usi in una API.

Ovviamente la libreria non si esaurisce qui; potete usare diverse altre combinazioni, funzioni, tipi, ecc.

Enjoy!


Condividi

Commentami!