json-routing-for-osseus
Version:
JSON configurable MVC routing for express 4
48 lines (31 loc) • 1.09 kB
text/typescript
import * as expressValidator from "express-validator/lib/express_validator";
export class RouteValidator {
static init(app, options?: any) {
app.use(expressValidator(options));
}
static get(validators): any {
const validatorFnc: any = (req, res, next) => {
if (validators.body) {
req.checkBody(validators.body);
}
if (validators.query) {
req.checkQuery(validators.query);
}
if (validators.params) {
req.checkParams(validators.params);
}
req.getValidationResult().then(function (result) {
if (result.isEmpty()) {
next();
} else {
const errors = result.array();
res.status(400).json({
message: `Validation error - ${errors[0].param} ${errors[0].msg}`,
errors: errors
})
}
});
};
return validatorFnc;
}
}