Express middleware for validating the request body with Zod.
npm install valid-body-zod
Import the middleware and Zod as below:
const validBody = require('valid-body-zod');
const z = require('zod');
Define a schema:
const loginSchema = z.object({
email: z.string().transform((x) => x?.trim()?.toLowerCase()),
password: z.string().transform((x) => x?.trim()),
});
Install the middleware on a route:
app.post('/api/auth/login', validBody(loginSchema), (req, res, next) => {
const login = req.body;
// ...
});
-
The middleware validates the request body against the provided schema.
-
If the request body is valid, the body is replaced by the sanitized data, and control passes to the next middleware.
-
Otherwise, a 400 response is sent.