Tengo un problema con mi código ahora y no puedo hacer que funcione. Estoy tratando de verificar si el correo electrónico agregado por el usuario ya está en la base de datos para poder generar un mensaje de error para la persona y no sé exactamente cómo verificar esto. ¿Puede alguien por favor ayudarme? Muchas gracias
Código back-end ahora:
//Create user app.post("/register/users", (req, res, next) => { let userData = { name: req.body.name, email: req.body.email, password: req.body.password, }; const user = new User(userData); user .save() .then((result) => { res.status(200).json(result._id); }) .catch((error) => res.status(422).json(error)); // console.log(res.body); });¿Cómo puedo verificar si un usuario con un correo electrónico similar ya está registrado para mostrar el error? Muchísimas gracias por su tiempo
Puede hacer una comprobación antes de guardar el usuario.
Primero, verifique si el usuario con el mismo correo electrónico existe en la base de datos. Si existe, no guarde de nuevo, en su lugar envíe la respuesta. Si no existe, guarde el usuario.
app.post("/register/users", async (req, res, next) => { let userData = { name: req.body.name, email: req.body.email, password: req.body.password, }; // checkin if a user with the mail exist try { const existingUser = await User.findOne({ email: req.body.email }); if (existingUser) { // you may want to send different status code return res.status(200).json({ message: 'User alreay registered }); } const user = new User(userData); // save the user const newUser = await user.save(); return res.status(200).json(newUser._id); } catch(error) { return res.status(422).json({ error }); });