Obtuve un ValidatorError al intentar agregar un nuevo usuario usando mi API... Obtuve el siguiente error, aunque se enviaron los campos obligatorios. Realmente no puedo entender por qué. He agregado la parte relevante del código. Gracias.
ingrese la descripción de la imagen aquí
Aquí está mi código: userModel.js
const mongoose = require('mongoose'); const validator = require('validator'); const userSchema = new mongoose.Schema({ name: { type: String, required: [true, 'Please tell us your name!'], }, mobile: { type: Number, required: [true, 'Please tell us your mobile number!'], unique: true, }, email: { type: String, unique: true, lowercase: true, validate: [validator.isEmail, 'Please provide a valid email'], }, photo: { type: String, default: 'default.jpg', }, role: { type: String, enum: ['user', 'guide', 'lead-guide', 'admin'], default: 'user', }, password: { type: String, required: [true, 'Please provide a password'], minlength: 8, select: false, }, passwordConfirm: { type: String, required: [true, 'Please confirm your password'], validate: { //This only works on create and save validator: function (el) { return el === this.password; }, message: 'Passwords are not the same!', }, }, passwordChangedAt: Date, passwordResetToken: String, passwordResetExpires: Date, active: { type: Boolean, default: true, select: false, }, referralCode: String, address: String, occupation: String, education: String, socialSiteLink: String, maritalStatus: String, religion: String, language: String, employmentStatus: String, }); const User = mongoose.model('User', userSchema); module.exports = User;authControler.js
const User = require('../models/userModel'); const catchAsync = require('../utils/catchAsync'); exports.signup = catchAsync(async (req, res, next) => { const newUser = await User.create(req.body); res.status(201).json({ status: 'success', data: { user: newUser, }, }); });catchAsync.js
module.exports = (fn) => { return (req, res, next) => { fn(req, res, next).catch(next); }; };