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

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

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 Relatório

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 Relatório

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