Data Validations
The following guide will using zod
for validating data.
1. Install zod
npm install zod
2. Validing body data
Lets create a scheme for defind the input body object
scheme.ts
import { z } from "zod";
export const currentUserScheme = z.object({
email: z.string(),
name: z.string(),
studentId: z.number()
})
export type CurrentUser = z.infer<typeof currentUserScheme>;
/*
{
email: string
name: string
studentId: number
}
*/
server.ts
//...
import { currentUserScheme, CurrentUser } from './scheme';
app.post('/register', async (req: Request, res: Response) => {
try {
// Will throw error is input body is not match the scheme
const currentUser: CurrentUser = currentUserScheme.parse(req.body);
console.log(currentUser);
return res.status(200).json(currentUser);
}
catch (error) {
return res.status(500).json(error);
}
});