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

174
Vistas
¿Cómo hacerlo más limpio y eficiente y cuáles son las prácticas a seguir?

Estoy construyendo una autenticación de usuario en el backend. Creé un método de publicación para registrar un nuevo usuario

 userRouter.post("/", expressAsyncHandler(async (req, res) => { try { const { name, email, password } = req.body; const userExists = await User.findOne({ email }); if (userExists) { res.status(400).json({ message: "User already exists" }); } const user = await User.create({ name, email, password, }); if (user) { res.status(201).json({ data: { _id: user._id, name: user.name, email: user.email, token: generateToken(user._id), }, }); } else { res.status(400).json({ message: "Registration failed" }); } } catch (error) { res.status(500).json({message:error.message}) } }))

Funciona pero muestra

 Cannot set headers after they send it to the client

Me siento un poco incómodo con este código. Entonces, ¿cómo puedo hacer que el código sea más limpio y eficiente? ¿Cuáles son las mejores prácticas a seguir?

Gracias por adelantado :)

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

dos posibles errores.

  1. si usa middleware que agrega encabezado de estado.
  2. "si (usuario) { res.status(201).json({....blabla" después del estado 201, si json falla, capture también agregue el estado(500)
about 4 years ago · Juan Pablo Isaza Denunciar

0

No se pueden establecer encabezados después de enviarlos al cliente

Ocurre cuando intenta establecer encabezados nuevamente. Y en su caso, podría estar sucediendo cuando envía la respuesta y se rompe nuevamente al enviar o restablecer los encabezados, es decir, el código de estado en el bloque catch.

Puede hacer una cosa agregando console.log antes de las respuestas que está enviando para depurarlo y podrá ver qué lo está causando.

Además, puede consultar este enlace para obtener más detalles antes de pasar directamente a la depuración.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Porque si su API se ejecuta correctamente, debe poner (200) en lugar de (201) porque si su API envía una solicitud, el código de respuesta de la API es 200.

ingrese la descripción de la imagen aquí

mira en la imagen si mandas una peticion en cartero tambien dan estado 200

Espero que te esté funcionando.

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