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

238
Vistas
No se puede establecer el encabezado después de que ya se haya enviado // nodo express

Aparece un mensaje que indica que no se pueden configurar encabezados después de que ya se hayan configurado. Mi intercepción de código para el método de colocación enviado en la URL, luego verifica la identificación faltante, luego verifica si ningún campo ingresado no está definido, luego realiza el método de captura de prueba dentro del cual se actualiza para la identificación dada. Si la identificación no es correcta, responde con un error. mi código es:

 .put(async function (req, res){ console.log(req.body._id + " is id.") const {_id, issue_title, issue_text, created_by, assigned_to, status_text, open} = req.body; if(!_id){ res.json({error: "missing _id"}) } const fields = {issue_title, issue_text, created_by, assigned_to, status_text, open} const checkAllUndefined = Object.values(fields).every(val => (val == undefined || val == '')? true: false) if(checkAllUndefined){ res.json({ error: 'no update field(s) sent', _id}) } else{ try{ await db.findOneAndUpdate({_id: new mongodb.ObjectID(_id)}, {$set: {issue_title,issue_text,created_by, assigned_to, status_text, open, updated_on: new Date()}}, { new: true, omitUndefined: true }) res.json({ result: 'successfully updated', _id}) }catch(err){ res.json({ error: 'could not update', _id}) } } })
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¡Su primera instrucción If está devolviendo la respuesta si _id no está definido!

 if(!_id){ res.json({error: "missing _id"}) }

¡Después de enviar esta respuesta, se ejecuta el siguiente bloque if o su bloque else, lo que lleva a enviar otra respuesta que no es posible o no está permitida! Tienes que anidar el bloque if else como este

   

    put(función asíncrona (req, res) {
    console.log(req.body._id + " es id.")
    const {_id, título_problema, texto_problema, creado_por, asignado_a, texto_estado, abierto} = req.cuerpo;
    si yo d) {
        res.json({error: "falta _id"})
    } más {
        si (marcarTodosIndefinidos) {
            res.json({error: 'no se enviaron campos de actualización', _id})
        } más {
            probar {
                esperar db.findOneAndUpdate({_id: nuevo mongodb.ObjectID(_id)}, {
                    $establecer:
                        {
                            título_problema, texto_problema, creado_por, asignado_a, texto_estado, abierto,
                            actualizado_en: nueva Fecha()
                        }
                }, {
                    nuevo: cierto,
                    omitir indefinido: verdadero
                })
                res.json({resultado: 'actualizado con éxito', _id})
            } atrapar (err) {
                res.json ({error: 'no se pudo actualizar', _id})
            }
        }
      }
    )
    }

al hacer esto, solo está enviando la respuesta una sola vez.

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