Un aspecto crucial al crear API en NodeJS es la validación de datos. La validación de datos es un proceso que garantiza que los datos ingresados ​​en una aplicación sean precisos, completos y cumplan con todas las reglas comerciales establecidas. Para facilitar este proceso, podemos utilizar el paquete Joi, una potente biblioteca de validación de datos para JavaScript.

Joi te permite crear esquemas complejos de validación de datos con un mínimo de código y esfuerzo. Proporciona una variedad de tipos de datos y reglas de validación, lo que la convierte en una herramienta extremadamente flexible y poderosa para cualquier proyecto NodeJS.

Cuando se trabaja con API, la validación de datos es esencial para garantizar la integridad de los datos y evitar errores en la entrada de datos. Por ejemplo, al crear una API para un sistema de administración de usuarios, es posible que deba asegurarse de que el nombre de usuario sea una cadena, que la dirección de correo electrónico sea válida y que la contraseña cumpla con ciertos criterios de complejidad. Joi puede ayudar con todo eso y más.

Para comenzar a usar Joi, primero debemos instalarlo en nuestro proyecto NodeJS. Esto se puede hacer usando el administrador de paquetes npm con el siguiente comando: npm install @hapi/joi.

Una vez instalado, podemos importar Joi a nuestro archivo y comenzar a crear esquemas de validación. Un esquema es una descripción de las reglas de validación que queremos aplicar a nuestros datos. Por ejemplo, podemos crear un esquema para validar la entrada del usuario como este:

const Joi = requerir('@hapi/joi');

esquema constante = Joi.object({
  nombre: Joi.string().min(3).max(30).required(),
  correo electrónico: Joi.string().correo electrónico().required(),
  contraseña: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
});

En este ejemplo, el esquema define que el nombre debe ser una cadena con un mínimo de 3 caracteres y un máximo de 30, la dirección de correo electrónico debe ser una cadena que pase la validación del correo electrónico y la contraseña debe ser una cadena que coincida. una expresión regular específica.

Para validar los datos de entrada con este esquema, podemos usar el método validate() de Joi. Este método devuelve un objeto que contiene detalles sobre cualquier error de validación que pueda haber ocurrido. Por ejemplo:

entrada de usuario constante = {
  nombre: 'John Doe',
  correo electrónico: 'john.doe@example.com',
  contraseña: 'contraseña123',
};

const validationResult = esquema.validar (entrada de usuario);

si (validaciónResultado.error) {
  console.log(validationResult.error.details);
} demás {
  console.log('La entrada del usuario es válida');
}

Si la entrada del usuario no supera la validación, el método validate() devuelve un objeto que contiene detalles sobre el error, incluido el mensaje de error y la ruta al valor no válido. Podemos utilizar esta información para informar al usuario del error y cómo corregirlo.

Joi también admite la validación de tipos de datos más complejos, como matrices y objetos. Por ejemplo, podemos validar una matriz de cadenas de la siguiente manera:

const arraySchema = Joi.array().items(Joi.string());

const arrayInput = ['manzana', 'plátano', 'cereza'];

const arrayValidationResult = arraySchema.validate(arrayInput);

si (arrayValidationResult.error) {
  console.log(arrayValidationResult.error.details);
} demás {
  console.log('La entrada de la matriz es válida');
}

De la misma manera, podemos validar un objeto que contiene otros objetos o arreglos. Por ejemplo, podemos validar un objeto que representa a un usuario y sus direcciones de la siguiente manera:

dirección constanteEsquema = Joi.object({
  calle: Joi.string().required(),
  ciudad: Joi.string().required(),
  estado: Joi.string().required(),
  zip: Joi.string().required(),
});

const esquema de usuario = Joi.object({
  nombre: Joi.string().required(),
  correo electrónico: Joi.string().correo electrónico().required(),
  direcciones: Joi.array().items(addressSchema),
});

entrada de usuario constante = {
  nombre: 'John Doe',
  correo electrónico: 'john.doe@example.com',
  direcciones: [
    {
      calle: '123 Main St',
      ciudad: 'Cualquier ciudad',
      estado: 'CA',
      código postal: '12345',
    },
    {
      calle: '456 Elm St',
      ciudad: 'Cualquier ciudad',
      estado: 'CA',
      código postal: '12345',
    },
  ],
};

const validationResult = userSchema.validate(userInput);

si (validaciónResultado.error) {
  console.log(validationResult.error.details);
} demás {
  console.log('La entrada del usuario es válida');
}

En resumen, Joi es una herramienta poderosa y flexible para validar datos en proyectos NodeJS. Puede manejar una variedad de tipos de datos y reglas de validación, lo que lo convierte en una excelente opción para cualquier proyecto que requiera una validación de datos sólida.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es el papel principal de la biblioteca Joi en proyectos NodeJS?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Carga de archivos con Multer en NodeJS

Siguiente página del libro electrónico gratuito:

121Carga de archivos con Multer en NodeJS

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.