{ //input validation using zod const requiredBody = z.object({ email: z.string().email("Email should be a valid email"), name: z.string().min(2).max(50), password: z .string() .min(6, "Password must have atleast 6 charracters") .max(100, "Password can not have more than 100 characters") .regex(/[A-Z]/, "Password must contain atleast one uppercase character") .regex(/[a-z]/, "Password must contain atleast one lowercase character") .regex(/^[A-za-z0-9]/, "Must contain atleast one special character"), }); const parsedData = requiredBody.safeParse(req.body); if (!parsedData.success) { res.json({ message: "Incorrect format", error: parsedData.error }); return; } const name = req.body.name; const password = req.body.password; const email = req.body.email; try { const hashedPassword = await bcrypt.hash(password, 5); const r = await UserModel.create({ email: ema"> { //input validation using zod const requiredBody = z.object({ email: z.string().email("Email should be a valid email"), name: z.string().min(2).max(50), password: z .string() .min(6, "Password must have atleast 6 charracters") .max(100, "Password can not have more than 100 characters") .regex(/[A-Z]/, "Password must contain atleast one uppercase character") .regex(/[a-z]/, "Password must contain atleast one lowercase character") .regex(/^[A-za-z0-9]/, "Must contain atleast one special character"), }); const parsedData = requiredBody.safeParse(req.body); if (!parsedData.success) { res.json({ message: "Incorrect format", error: parsedData.error }); return; } const name = req.body.name; const password = req.body.password; const email = req.body.email; try { const hashedPassword = await bcrypt.hash(password, 5); const r = await UserModel.create({ email: ema"> { //input validation using zod const requiredBody = z.object({ email: z.string().email("Email should be a valid email"), name: z.string().min(2).max(50), password: z .string() .min(6, "Password must have atleast 6 charracters") .max(100, "Password can not have more than 100 characters") .regex(/[A-Z]/, "Password must contain atleast one uppercase character") .regex(/[a-z]/, "Password must contain atleast one lowercase character") .regex(/^[A-za-z0-9]/, "Must contain atleast one special character"), }); const parsedData = requiredBody.safeParse(req.body); if (!parsedData.success) { res.json({ message: "Incorrect format", error: parsedData.error }); return; } const name = req.body.name; const password = req.body.password; const email = req.body.email; try { const hashedPassword = await bcrypt.hash(password, 5); const r = await UserModel.create({ email: ema">
app.post("/signup", async (req, res) => {
//input validation using zod
const requiredBody = z.object({
email: z.string().email("Email should be a valid email"),
name: z.string().min(2).max(50),
password: z
.string()
.min(6, "Password must have atleast 6 charracters")
.max(100, "Password can not have more than 100 characters")
.regex(/[A-Z]/, "Password must contain atleast one uppercase character")
.regex(/[a-z]/, "Password must contain atleast one lowercase character")
.regex(/^[A-za-z0-9]/, "Must contain atleast one special character"),
});
const parsedData = requiredBody.safeParse(req.body);
if (!parsedData.success) {
res.json({ message: "Incorrect format", error: parsedData.error });
return;
}
const name = req.body.name;
const password = req.body.password;
const email = req.body.email;
try {
const hashedPassword = await bcrypt.hash(password, 5);
const r = await UserModel.create({
email: email,
password: hashedPassword,
name: name,
});
} catch (e) {
res.json({ message: "User already exists" });
return;
}
res.json({ message: "You are signed up " });
});