Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

368
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda