Files
ruflo/examples/user-api/middleware/validation.js
T
2025-06-16 19:09:10 +00:00

46 lines
1.2 KiB
JavaScript

const { body, validationResult } = require('express-validator');
const handleValidationErrors = (req, res, next) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
next();
};
const validateUser = [
body('name')
.trim()
.notEmpty().withMessage('Name is required')
.isLength({ min: 2, max: 100 }).withMessage('Name must be between 2 and 100 characters'),
body('email')
.trim()
.notEmpty().withMessage('Email is required')
.isEmail().withMessage('Must be a valid email address')
.normalizeEmail(),
body('age')
.optional()
.isInt({ min: 0, max: 150 }).withMessage('Age must be between 0 and 150'),
handleValidationErrors
];
const validateUserUpdate = [
body('name')
.optional()
.trim()
.isLength({ min: 2, max: 100 }).withMessage('Name must be between 2 and 100 characters'),
body('email')
.optional()
.trim()
.isEmail().withMessage('Must be a valid email address')
.normalizeEmail(),
body('age')
.optional()
.isInt({ min: 0, max: 150 }).withMessage('Age must be between 0 and 150'),
handleValidationErrors
];
module.exports = {
validateUser,
validateUserUpdate
};