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}`));
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter