express-zod request validation
Sun Nov 05 2023 04:28:47 GMT+0000 (Coordinated Universal Time)
Saved by
@sadik
#javascript
#express
#zod
#backend
const express = require("express");
const { z } = require("zod");
const app = express();
app.use(express.json());
const LoginSchema = z.object({
// In this example we will only validate the request body.
body: z.object({
// email should be valid and non-empty
email: z.string().email(),
// password should be at least 6 characters
password: z.string().min(6),
}),
});
const validate = (schema) => (req, res, next) => {
try {
schema.parse({
body: req.body,
query: req.query,
params: req.params,
});
next();
} catch (err) {
return res.status(400).send(err.errors);
}
};
app.post("/login", validate(LoginSchema), (req, res) => {
return res.json({ ...req.body });
});
app.listen(1337, () => console.log(`> Ready on http://localhost:${1337}`));
content_copyCOPY
https://www.imadatyat.me/guides/schema-validation-with-zod-and-expressjs
Comments