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

1.2K
Vistas
findOneAndUpdate, la devolución de llamada debe ser una función, obtuve [objeto Objeto], NodeJs, error de mangosta

Estoy desarrollando una aplicación web en la pila MERN, mientras lo hacía me encontré con un error, por favor ayuda. Cuando trato de actualizar el usuario, me da un error, la devolución de llamada debe ser una función, obtuve '[objeto Objeto]'.

Esta es la API.

Se garantiza que el usuario siempre existe.

 module.exports.addBlog=(req,res)=>{ const {title,data} = req.body.blog; console.log(title,data); const {email} = req.body; const newblog ={ title, data } userSchema.findOneAndUpdate( {email}, {$push:{blogArray:newblog}}, {upsert:true}, {useFindAndModify:false} ) .then(res=>console.log(res)) .catch(err=>console.log(err)); return res.json({msg:"Blog added successfully"}); }

Este es el esquema de usuario.

 const userSchema = new mongoose.Schema({ firstname:{ type:String, required:true, lowercase:true }, lastname:{ type:String, required:true, lowercase:true }, email:{ type:String, required:true, lowercase:true }, password:{ type:String, required:true }, blogArray:[ { title:{ type:String, required:true }, data:{ type:String, required:true } } ] });
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

findOneAndUpdate tiene 3 firmas posibles:

 findOneAndUpdate( filter: FilterQuery<TSchema>, update: UpdateQuery<TSchema> | TSchema, callback: MongoCallback<FindAndModifyWriteOpResultObject<TSchema>>, ): void;
 findOneAndUpdate( filter: FilterQuery<TSchema>, update: UpdateQuery<TSchema> | TSchema, options?: FindOneAndUpdateOption<TSchema>, ): Promise<FindAndModifyWriteOpResultObject<TSchema>>;
 findOneAndUpdate( filter: FilterQuery<TSchema>, update: UpdateQuery<TSchema> | TSchema, options: FindOneAndUpdateOption<TSchema>, callback: MongoCallback<FindAndModifyWriteOpResultObject<TSchema>>, ): void;

Está tratando de usar la firma n. ° 2, la que utiliza una promesa, por lo que debe cambiar su sintaxis a:

 userSchema.findOneAndUpdate( {email}, {$push:{blogArray:newblog}}, {upsert:true, useFindAndModify:false}, ) .then(res=>console.log(res)) .catch(err=>console.log(err));

ver todos los tipos de nodos de Mongos aquí

over 4 years ago · Santiago Trujillo 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