Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

270
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!