Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

271
Vistas
user.save() no es una función cuando intento guardar el modelo
 const user = User.findOne({email:req.body.email}); if(!user){ return next(new ErrorHander("User not found",404)); } const resetToken = user.getResetPasswordToken await user.save({ validateBeforeSave: false });

No sé por qué user.save no funciona en mern mongodb. Tengo el mismo fragmento de código que funciona para otra persona pero no para mí.

Lo que hice es que obtuve al usuario activando la consulta en la línea uno después de tener ese usuario, debería poder usar la función user.save () aquí, pero lamentablemente está dando un error

//aqui esta el esquema de mi modelo

 const mongoose = require("mongoose"); const validator = require("validator"); const bcrypt = require("bcryptjs"); const crypto = require("crypto") const jwt = require("jsonwebtoken"); const userSchema = new mongoose.Schema({ name: { type: String, required: [true, "please Ente the your name"], }, email: { type: String, required: [true, "Please Enter the email"], unique: [true], validate: [validator.isEmail, "Please Enter a valid email"], }, password: { type: String, required: true, minlength: [8, "Passwaord must be more that 8 characters"], select: false, }, avatar: { public_id: { type: String, required: true, }, url: { type: String, required: true, }, }, role: { type: String, default: "user", }, resetPasswordToken: String, resetPasswordTokenExpire: Date, createdAt: { type: Date, default: Date.now, }, }); userSchema.pre("save", async function (next) { if (!this.isModified("password")) { next(); } this.password = await bcrypt.hash(this.password, 10); }); userSchema.methods.comparePassword = async function (password) { return await bcrypt.compare(password, this.password); }; userSchema.methods.getJWTToken = function () { return jwt.sign({ id: this._id }, process.env.JWT_SECRET, { expiresIn: process.env.JWT_EXPIRE, }); }; // compare password // userSchema.methods.comparePassword = async function(enterPass){ // return await bcyrypt.compare(enterPass,this.password) // } // Reset Password userSchema.methods.getResetPasswordToken = function(){ const resetToken = crypto.randomBytes(20).toString("hex"); this.resetPasswordToken = crypto.createHash("sha256").update(resetToken).digest("hex"); this.resetPasswordTokenExpire = Date.now +15*60*1000; return resetToken; } module.exports = mongoose.model("User", userSchema);
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

User.findOne devolverá una Promesa. Por lo tanto, debe agregar la palabra clave await.

 const user = await User.findOne({email:req.body.email}); if(!user){ return next(new ErrorHander("User not found",404)); } const resetToken = user.getResetPasswordToken await user.save({ validateBeforeSave: false });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda