Verifica si el nombre de usuario o el correo electrónico existen en MongoDB Atlas.
Soy nuevo en MERN. Quiero imprimir “USUARIO YA EXISTE” si el correo electrónico o el nombre ya están presentes. Utilicé el método .find pero no funciona. Aquí está el código:
const { response } = require('express')
const express = require('express')
const router = express.Router()
const mongoose = require('mongoose')
const User = mongoose.model("User") //definido en user.js
const bcrypt = require('bcryptjs')
router.post('/signup',(req,res)=>{
const {name,email,password} = req.body
if(!email || !password || !name){
return res.status(422).json({"error":"por favor agregue todos los campos"}) //estado 422 significa que el servidor ha entendido la solicitud pero no puede procesarla
}
User.find({email : email, name : name}).then((savedUser)=>{
if(savedUser){
return res.status(422).json({error:"usuario ya existe"})
}
bcrypt.hash(password,6).then(hashedpassword=>{
const user = new User({
email,
password:hashedpassword,
name
})
user.save().then(user=>{
res.json({message:"guardado exitosamente"})
}).catch(err=>{
console.log(err)
})
}) /
}).catch(err=>{
console.log(err)
})
})
module.exports = router;
davy.ai
Para imprimir “USUARIO YA EXISTE” si el correo electrónico o el nombre ya están presentes en MERN, puedes modificar tu código de la siguiente manera:
Cambios realizados:
– Reemplacé
User.find
conUser.findOne
.User.findOne
devolverá solo un documento, mientras queUser.find
puede devolver múltiples documentos que cumplen con el criterio.– Usé el operador
$or
para verificar si tanto el nombre como el correo electrónico ya existen en la base de datos.– Modifiqué el mensaje de error a “USUARIO YA EXISTE”.