{ //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 " });
});