Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | const Ajv = require('ajv');
const addFormats = require('ajv-formats');
const ajv = new Ajv({ allErrors: true, messages: true });
addFormats(ajv);
function validateBody(schema) {
const validate = ajv.compile(schema);
return (req, res, next) => {
const valid = validate(req.body);
if (!valid) {
const errors = validate.errors.map(err => ({
field: err.instancePath.replace('/', '') || err.params.missingProperty || 'body',
message: err.message
}));
return res.status(400).json({
success: false,
message: 'Validation failed',
errors
});
}
next();
};
}
module.exports = { validateBody };
|