Tanto “joi” como “express-validator” son paquetes de Node.js que proporcionan un conjunto de herramientas para validar información entrante en servidores Express
Primero necesitarás instalar estos en tu proyecto de Express con el comando `npm install`.
Usando Joi:
```javascript
const Joi = require(‘joi’);
app.post(‘/example’, (req, res) => { const schema = Joi.object({ nombre: Joi.string().required(), correo: Joi.string().email().required(), contraseña: Joi.string().min(5).required(), });
const result = schema.validate(req.body); if (result.error) { res.status(400).send(result.error); return; } res.send(‘Datos validados con éxito’); }); ```En este ejemplo, estamos utilizando las siguientes funciones para validar los datos:
- `Joi.string().required()` indica que el campo debe ser una cadena y no puede estar vacío.
- `Joi.string().email().required()` indica que el campo debe ser una dirección de correo válida.
- `Joi.string().min(5).required()` indica que el campo debe ser una cadena de al menos cinco caracteres de longitud.
Usando Express-Validator
```javascript
const { check, validationResult } = require(‘express-validator’);
app.post(‘/example’, [ check(‘nombre’).isString(), check(‘correo’).isEmail(), check(‘contraseña’).isLength({ min: 5 }) ], (req, res) => {
const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(400).json({ errors: errors.array() }); } res.send(‘Datos validados con éxito’); }); ``` Similares a las funciones de Joi, `check(…).isString()`, `check(…).isEmail()`, y `check(…).isLength({ min: 5 })` hacen exactamente mismas validaciones.En ambos casos, siempre se valida la petición antes de cualquier otro procesamiento. Los campos no validados se rechazan inmediatamente con un código de error HTTP 400.