Menu

Joi

Joi

C'est un module qui permet de vérifier que les donnée envoyées par le Front sont conformes à ce qu'on attend en Back

On crée des schemas de ce que l'on doit recevoir

Un Objet avec une certaine key

Un string de 3 lettres minimum

Un number qui est entre 200 et 250

Doc ici et la

1# Init 2npm i joi 3

Dans un fichier schema

1const Joi = require("joi"); 2 3const schema = Joi.object({ 4 name: Joi.string(), 5 age: Joi.number(), 6}) 7 .required() 8 .min(1) 9 .max(4); 10// required oblige d'avoir un objet 11// min et max indique le nombre de key minimum et maximum 12

Dans le router

1const validation = require("../service/validation"); 2router.get("/object", validation.request, controller.getOne); 3

Dans un fichier service

1// Si j'ai quelque chose dans query, je demande une validation 2request(req, res, next) { 3 if (Object.keys(req.query).length > 0) { 4 const { error } = schema.validate(req.query); 5 if (error) { 6 console.error(error); 7 return; 8 } 9 } 10 next(); 11}, 12