¡Disculpe si esta pregunta es tonta! Tengo un problema como este: cuando soy validador en Shema y no sé cómo codificar para mostrar el mensaje en el lado del controlador. Esperando la ayuda de todos. ¡Muchos gracias!
userService.js
exports.findUserResgiter = async (email) => { var result = null; try{ result = await User.findOne({ email: email, }) } catch(e){ } return result;};
controlador de usuario.js
exports.register = async (req, res, next)=>{ var email=req.body.email; var password=md5(req.body.password) var name=req.body.name var address=req.body.address var phone=req.body.phone var date_of_birth=req.body.date_of_birth var data = await userService.findUserResgiter(email); console.log(data); if(data === null){ res.status(200).json({message: "null"}); return User.create({ name: name, email: email, password: password, address: address, date_of_birth: date_of_birth, phone: phone, }) }else{ res.status(401).json({message: "This email already exists!"}); }};
modelo de usuario.js
var validateEmail = function(email) { var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; return re.test(email)};
const UserShema = new Shema({ name: { type: String, required: [true, 'Not blank'] }, date_of_birth: { type: Date, required: [true, 'Not blank']}, address: { type: String, required: [true, 'Not blank']}, phone: { type: D, required: [true, 'Not blank']}, email: { type: String, Required: 'Not blank', validate: [validateEmail, 'Not blank'], match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Not blank'], index: {unique: true, dropDups: true} }, password: { type: String , required: [true, 'Not blank']},},