Validación de datos de formulario en Node.js con Validator.js

En este tutorial, veremos cómo realizar la validación de datos de formulario en Node.js, usando Validator.js. Estaremos validando correos electrónicos, cadenas, tarjetas de crédito, códigos postales y números de teléfono.

Introducción

Casi todos los sitios web involucran la recopilación de información del usuario a través de formularios html. Cada vez que recopilamos datos del usuario, tenemos que validarlos. En Informática, validación de datos es el proceso de comprobar si los datos introducidos son sensatos y razonables.

Considere desarrollar un formulario para suscripciones de correo electrónico. En este caso, queremos verificar si el correo electrónico enviado sigue un formato de correo electrónico genérico como [correo electrónico protegido]. Sin validación, los usuarios maliciosos pueden ingresar valores inútiles o incluso realizar inyecciones SQL.

En este artículo, realizaremos la validación de datos de formularios utilizando Validador.js, un paquete NPM liviano creado exactamente para este propósito.

Instalando Validator.js

Vamos a crear un directorio para nuestro proyecto, llamado string-validator, pasar a él, crear un punto de entrada index.js e inicializar un proyecto de Nodo con la configuración predeterminada usando npm:

1
2
3
$ mkdir string-validator
$ cd string-validator
$ npm init -y

Entonces vamos:

1
$ touch index.js

Después de inicializar el proyecto, podemos instalar el paquete Validator.js usando:

1
$ npm install validator

Validación de datos de formulario mediante Validator.js

Considere una aplicación para vender libros donde la entrada del usuario se recopila primero mediante un formulario HTML. Luego, estos datos se envían, en formato JSON, a un servidor para su posterior procesamiento. Veamos cómo se puede hacer la validación de cadenas para esto.

Digamos que estos son los datos que se envían desde el front-end. Guardemos estos datos en el archivo index.js. Además, solicitemos Validator.js en nuestro archivo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
const validator = require("validator")

const data = {
    "gender": "male",
    "name": {
        "title": "mr",
        "first": "brad",
        "last": "gibson"
    },
    "countryCode": "IE",
    "postalCode": "93027",
    "email": "[correo electrónico protegido]",
    "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 tiene muchas funciones preestablecidas para verificar la validez de diferentes entradas, como tarjetas de crédito, teléfonos móviles, correos electrónicos, códigos postales, etc.

En primer lugar, vamos a comprobar si el usuario nos proporciona datos de tarjeta de crédito válidos. Esto se puede hacer usando:

1
console.log(validator.isCreditCard(data.creditCardNumber)); // true

Para poder entregar el libro, el código postal tiene que ser válido. Entonces, verifiquemos eso usando:

1
console.log(validator.isPostalCode(data.postalCode, data.countryCode)) // false

La validación del número de teléfono se puede hacer usando:

1
console.log(validator.isMobilePhone(data.cell, `en-${data.countryCode}`)); // false

La validación de correo electrónico se puede hacer usando:

1
console.log(validator.isEmail(data.email)) // true

Además, podemos hacer la validación de ISBN usando:

1
console.log(validator.isISBN(data.book.isbn, data.book.isbnVersion)) // true

Luego, podemos pedirle al usuario que vuelva a ingresar cualquier información no válida para asegurarnos de que tengamos datos limpios y viables.

Conclusión

En este artículo, revisamos el paquete Validator.js NPM, que es un paquete liviano que se usa para la validación de datos y cadenas.