Напишите промежуточное программное обеспечение для проверки результата проверки.
validation.js
const { validationResult } = require('express-validator');
const rules = require('./rules');
const validate = (request, response, next) => {
const errors = validationResult(request);
if (errors.isEmpty()) {
return next();
}
const extractedErrors = [];
errors.array().map(err => extractedErrors.push({ [err.param]: err.msg }));
return response.status(422).json({
errors: extractedErrors,
});
}
module.exports = {
validate: validate,
Rule: rules
};
и файл rules.js
, содержащий все правила:
const { body } = require('express-validator')
function registerRule() {
return [
// username must be an email
body('username')
.not().isEmpty()
.isEmail(),
// .isLength({ min: 5 })
// .withMessage('Username must have more than 5 characters'),
// password must be at least 5 chars long
body('password', 'Your password must be at least 5 characters')
.not().isEmpty()
.isLength({ min: 5 }),
];
};
module.exports = {
Register: registerRule.call()
};
И используйте это как:
const validation = require('./libs/validation');
validate = validation.validate;
ValidationRule = validation.Rule;
router.post('/register', ValidationRule.Register, validate, (req, res, next) => {});
Я использую этот источник, чтобы ответить.