maggie-api
Version:
🧙♀️ A magical Express middleware to auto-generate CRUD APIs for Mongoose models with validation, unique keys, and middlewares.
25 lines (21 loc) • 729 B
text/typescript
import { Request, Response, NextFunction } from "express";
import { Schema } from "joi";
export const validateBody = (schema: Schema): any => {
return (req: Request, res: Response, next: NextFunction) => {
const { error, value } = schema.validate(req.body, {
abortEarly: false, // collect all errors
stripUnknown: true, // remove unknown keys
convert: true, // apply defaults and type conversions
});
if (error) {
return res.status(400).json({
success: false,
statusCode: 400,
message: "Validation error",
error: error.details.map((d) => d.message).join(", "),
});
}
req.body = value; // assign validated + defaulted data
next();
};
};