La validation des requêtes entrantes avec Joi ou Express-validator est une étape importante pour assurer la sécurité et l’intégrité des données dans votre application. La validation de la requête vérifie que les données reçues correspondent à ce qui est attendu, ce qui peut protéger votre application contre les attaques malveillantes et les erreurs humaines.
Express-validator est un ensemble de middleware de validation et de filtrage des requêtes pour Express.js. Voici un exemple de base de filtrage des requêtes entrantes avec express-validator:
```
const { check, validationResult } = require(‘express-validator’);
app.post(‘/user’, [
// Le nom d’utilisateur doit être un email
check(‘username’).isEmail(),
// le mot de passe doit avoir au moins 5 caractères
check(‘password’).isLength({ min: 5 })
], (req, res) => {
// Récupérer les erreurs
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
Joi est un bibliothèque de validation d’objets puissante qui s’intègre bien avec des frameworks Node.js tels que Hapi.js ou Express. Ci-dessous un exemple de comment vous pouvez utiliser Joi pour valider une requête entrante:
```
const Joi = require(‘joi’);
// Définir le schéma
const schema = Joi.object().keys({
username: Joi.string().email().required(),
password: Joi.string().min(5).required(),
});
app.post(‘/user’, (req, res) => { // Valider la requête const { error } = schema.validate(req.body);
if (error) { return res.status(400).json({ error: error.details0.message }); } // Si tout se passe bien, enregistrez l’utilisateur… }); ```Dans cet exemple, nous avons défini un schéma de validation avec Joi qui exige que le nom d’utilisateur soit une adresse email valide et que le mot de passe contienne au moins 5 caractères. Les erreurs de validation sont alors renvoyées au client sous forme de réponses JSON.