19. Validation des données avec le package Joi

Página 120

Un aspect crucial lors de la création d'API dans NodeJS est la validation des données. La validation des données est un processus qui garantit que les données saisies dans une application sont exactes, complètes et respectent toutes les règles métier établies. Pour faciliter ce processus, nous pouvons utiliser le package Joi, une puissante bibliothèque de validation de données pour JavaScript.

Joi vous permet de créer des schémas de validation de données complexes avec un minimum de code et d'effort. Il fournit une variété de types de données et de règles de validation, ce qui en fait un outil extrêmement flexible et puissant pour tout projet NodeJS.

Lorsque vous travaillez avec des API, la validation des données est essentielle pour garantir l'intégrité des données et éviter les erreurs de saisie. Par exemple, lors de la création d'une API pour un système de gestion des utilisateurs, vous devrez peut-être vous assurer que le nom d'utilisateur est une chaîne, que l'adresse e-mail est valide et que le mot de passe répond à certains critères de complexité. Joi peut vous aider avec tout cela et bien plus encore.

Pour commencer à utiliser Joi, nous devons d'abord l'installer dans notre projet NodeJS. Cela peut être fait à l'aide du gestionnaire de packages npm avec la commande suivante : npm install @hapi/joi.

Une fois installé, nous pouvons importer Joi dans notre fichier et commencer à créer des schémas de validation. Un schéma est une description des règles de validation que nous souhaitons appliquer à nos données. Par exemple, nous pouvons créer un schéma pour valider les entrées de l'utilisateur comme ceci :

const Joi = require('@hapi/joi'); schéma const = Joi.object({ nom : Joi.string().min(3).max(30).required(), email : Joi.string().email().required(), mot de passe : Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(), });

Dans cet exemple, le schéma définit que le nom doit être une chaîne comportant un minimum de 3 caractères et un maximum de 30, l'adresse e-mail doit être une chaîne qui passe la validation par e-mail et le mot de passe doit être une chaîne qui correspond à une expression régulière spécifique.

Pour valider les données d'entrée avec ce schéma, nous pouvons utiliser la méthode validate() de Joi. Cette méthode renvoie un objet contenant des détails sur les erreurs de validation ayant pu se produire. Par exemple :

const entréeutilisateur = { nom : « John Doe », e-mail : '[email protected]', mot de passe : 'mot de passe123', } ; const validationResult = schema.validate(userInput); si (validationResult.error) { console.log(validationResult.error.details); } autre { console.log('L'entrée utilisateur est valide'); }

Si la saisie de l'utilisateur échoue à la validation, la méthode validate() renvoie un objet qui contient des détails sur l'erreur, y compris le message d'erreur et le chemin d'accès à la valeur non valide. Nous pouvons utiliser ces informations pour informer l'utilisateur de l'erreur et de la manière de la corriger.

Joi prend également en charge la validation de types de données plus complexes tels que des tableaux et des objets. Par exemple, nous pouvons valider un tableau de chaînes comme suit :

const arraySchema = Joi.array().items(Joi.string()); const arrayInput = ['pomme', 'banane', 'cerise']; const arrayValidationResult = arraySchema.validate(arrayInput); si (arrayValidationResult.error) { console.log(arrayValidationResult.error.details); } autre { console.log('L'entrée du tableau est valide'); }

De la même manière, nous pouvons valider un objet qui contient d'autres objets ou tableaux. Par exemple, nous pouvons valider un objet représentant un utilisateur et ses adresses comme suit :

const adresseSchema = Joi.object({ rue : Joi.string().required(), ville : Joi.string().required(), état : Joi.string().required(), zip : Joi.string().required(), }); const userSchema = Joi.object({ nom : Joi.string().required(), email : Joi.string().email().required(), adresses : Joi.array().items(addressSchema), }); const entréeutilisateur = { nom : « John Doe », e-mail : '[email protected]', adresses : [ { rue : '123 rue Main', ville : "N'importe quelle ville", état : 'CA', code postal : '12345', }, { rue : '456 rue Elm', ville : "N'importe quelle ville", état : 'CA', code postal : '12345', }, ], } ; const validationResult = userSchema.validate(userInput); si (validationResult.error) { console.log(validationResult.error.details); } autre { console.log('L'entrée utilisateur est valide'); }

En bref, Joi est un outil puissant et flexible pour valider les données dans les projets NodeJS. Il peut gérer une variété de types de données et de règles de validation, ce qui en fait un excellent choix pour tout projet nécessitant une validation de données robuste.

Répondez maintenant à l’exercice sur le contenu :

Quel est le rôle principal de la bibliothèque Joi dans les projets NodeJS ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

12120. Téléchargement de fichiers avec Multer dans NodeJS

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte