Die Validierung eingehender Requests in einer API ist ein wesentlicher Aspekt zur Sicherstellung der Integrität der empfangenen Daten, insbesondere wenn diese Daten in einer Datenbank gespeichert oder für bestimmte Operationen verwendet werden. Beide Bibliotheken, Joi und Express-Validator, sind sehr nützlich, um diese Aufgabe zu erfüllen.
Joi ist eine leistungsstarke Bibliothek zur Validierung von JavaScript-Objekten. Hier ist ein Beispiel, wie man es verwendet:
```JavaScript
const Joi = require(‘joi’);
const schema = Joi.object({
name: Joi.string().min(3).required(),
age: Joi.number().integer().min(0),
email: Joi.string().email()
});
app.post(‘/api/users’, (req, res) => {
const { error, value } = schema.validate(req.body);
if (error) {
res.status(422).json({
message: ‘Invalid request’,
error: error.details
});
} else {
// Füge den Nutzer hier zur Datenbank hinzu
}
});
```
Andererseits ist Express-Validator eine Reihe von Express.js-Middlewares, die eingehende Anfragen validieren und reinigen, indem sie eine Reihe von Validatoren und Sanitizern bereitstellt. Hier ist ein Beispiel für die Verwendung des Express-Validators:
```JavaScript
const { check, validationResult } = require(‘express-validator’);
app.post(‘/api/users’, [
check(‘name’).isLength({ min: 3 }).withMessage(‘Name must be at least 3 characters’),
check(‘age’).isNumeric().withMessage(‘Age must be a number’),
check(‘email’).isEmail().withMessage(‘Must be a valid email’)
], (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({ errors: errors.array() });
}
// Füge den Nutzer hier zur Datenbank hinzu
});
```
In beiden Methoden überprüfen wir den Request-Body auf die erforderlichen Bedingungen und senden einen Fehler zurück, wenn die Validierung fehlschlägt. Andernfalls verarbeiten wir unsere Daten.