const express = require('express'); const router = express.Router(); require('../db/conn'); const User = require('../model/userSchema'); router.get('/', (req, res) => { res.send(`Hello World from the server from router.`); }); router.post('/register', (req, res) => { const { name,email,phone,work,password,cpassword } = req.body; if(!name || !email || !phone || !work || !password || !cpassword){ return res.status(422).json({error:"please fill all the fields data.."}); } User.findOne({ "$or": [ { email: email }, { phone: phone} ] }) .then((userExist) => { if(userExist){ return res.status(422).json({error:"Email ID or Mobile No is already exist."}); } const user = new User({name,email,phone,work,password,cpassword}); user.save().then(() => { res.status(201).json({message:"User Registered Successfully."}); }).catch((err) => res.status(500).json({error:"Failed to regsiter user."})); }).catch(err => { console.log(err)}); }); module.exports = router; await User.findOne({ "$or": [ { email: email }, { phone: phone} ] }); Este código funcionó para mí. Pero si queremos diferenciar tanto el teléfono como el correo electrónico y el número de aadhar; entonces, si la email id está presente, se mostrará que está presente, y si phone no está presente, se mostrará que está presente, y si aadhar no está presente, se mostrará. Para hacer esto, ¿cómo podemos escribir la sintaxis?
Siempre puede verificar userExist, que es el registro devuelto de DB.
if(userExist.phone==phone) err="Phone No exist" else if (userExist.aadhar==aadhar) err="Aadhar Exist"Finalmente devuelve la cadena de error.