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

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

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 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