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

363
Vistas
MongooseError: `Model.findByIdAndUpdate()` no puede ejecutarse sin un modelo como `this`. Asegúrate de no llamar a `nuevo modelo.findByIdAndUpdate()`

Así es como me conecté a la base de datos.

 const dbConnection = async() => { try { await mongoose.connect(process.env.MONGODB_CNN); console.log('Base de datos online'); } catch (error) { console.log(error); throw new Error('Error al inicializar la base de datos'); }

el problema viene al actualizar

 const usuariosPut = (req = request, res = response) => { const {id} = req.params; const {password, google, correo, ...resto} = req.body; if (password) { const salt = bcryptjs.genSaltSync(); resto.password = bcryptjs.hashSync(password, salt); } const usuario = new Usuario.findByIdAndUpdate(id, resto); res.json({ msg: 'put API - controlador', id });

me sale ese error, seria de mucha ayuda ya que acabo de empezar

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Porque está intentando crear una nueva instancia del modelo modelo en lugar de llamar directamente al método en el modelo.

 const usuario = new Usuario.findByIdAndUpdate(id, resto);

debiera ser:

 const usuario = await Usuario.findByIdAndUpdate(id, resto);

Además, no veo ninguna palabra clave async o Promise.then() en su código. Los métodos del modelo son asíncronos, así que asegúrese de marcar su función principal async de esta manera:

 const usuariosPut = async (req = request, res = response) => {
about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Creó antes el modelo Usuario ? Si es así, no necesita llamar al constructor del modelo con la new palabra clave, su código debería verse así:

 const usuario = await Usuario.findByIdAndUpdate(id, resto);
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