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

169
Vistas
Mongoose no puede establecer encabezados después de que se envían al cliente

Tengo este código Mongoose/Express que le permite actualizar un documento del usuario que inició sesión. Recibo un error: nodo: eventos: 368 throw er; // Evento 'error' no manejado ^

Error [ERR_HTTP_HEADERS_SENT]: no se pueden establecer encabezados después de enviarlos al cliente

Este es mi código.

 router.post("/update/:id", checkAuth, (req, res) => { // check if the snippet was created by the user who is logged in and update the snippet with the new data from the request body Snippet.findOne({ _id: req.params.id, userId: req.userData.userId, }) .then((snippet) => { if (!snippet) { return res.status(400).json({ message: "You don't have a snippet with this ID", }); } if (req.body.title) { console.log("if statement"); Snippet.findOne( { title: req.body.title, userId: req.userData.userId, }, (titleCheckErr, titleCheckSnippet) => { if (titleCheckErr) { return res.status(500).json({ error: titleCheckErr, }); } if (titleCheckSnippet) { return res.status(400).json({ message: "You already have a snippet with that title", }); } } ); snippet.title = req.body.title; } snippet.description = req.body.description; snippet.code = req.body.code; snippet.language = req.body.language; // save the snippet snippet.save((saveSnippetErr, saveSnippet) => { if (saveSnippetErr) { return res.status(500).json({ error: saveSnippetErr, }); } return res.status(201).json({ message: "Snippet updated", snippet: saveSnippet, }); }); }) .catch((err) => { return res.status(500).json({ error: err, }); }); });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Me lo imaginé. Lo estaba haciendo demasiado complicado. Simplemente cambié el uso de mongoose para verificar si el título existe, y lo convertí en una declaración if simple que mantuvo el título igual de db si no había un título de cuerpo de solicitud. Aquí está el código.

 router.post("/update/:id", checkAuth, (req, res) => { // check if snippet was created by the user who is logged in, and update the snippet with new data from the request body Snippet.findOne( { _id: req.params.id, userId: req.userData.userId }, (err, snippet) => { if (err) { return res.status(500).json({ error: err, }); } if (!snippet) { return res.status(400).json({ message: "Snippet not found", }); } if (req.body.title) { snippet.title = req.body.title; } else { snippet.title = snippet.title; } snippet.description = req.body.description; snippet.code = req.body.code; snippet.language = req.body.language; // save the snippet snippet.save((saveErr, saveSnippet) => { if (saveErr) { return res.status(500).json({ error: saveErr, }); } console.log("updated"); return res.status(201).json({ message: "Snippet updated", snippet: saveSnippet, }); }); } ); });
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