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

180
Vistas
Cómo obtener encabezados de respuesta usando express.js

Estoy tratando de obtener un encabezado de respuesta usando express js, pero de ninguna manera funciona. Aquí es donde configuro el encabezado:

 return res.status(400).header('loginError', error.details[0].message).redirect('/login');

Esto funciona y puedo ver el encabezado en la pestaña de red en el elemento de inspección, pero cuando intento acceder a él, no devuelve un valor. He intentado:

 res.getHeader("loginError"), res.get("loginError"), res.header("loginError")

Aquí está mi código ejs:

 <div class="login-form-error"> <div class="login-form-error__inner"> <span id="login-form-error__span"><%=loginError%></span> </div> </div> <% } %>

Establecí el loginError var cuando represento la página:

 res.render('login/index.ejs', { loginError: res.header });

Cualquier ayuda es apreciada, lo siento si esta es una pregunta tonta

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

0

Para cualquiera que se pregunte: en lugar de usar encabezados, descubrí que si usa req.app.get (var) y req.app.set (var, valor) puede enviar datos fácilmente de una solicitud a otra. No sé si es una forma segura de enviar datos de la tienda o no. Si alguien más tiene más información al respecto, no dude en responder.

about 4 years ago · Juan Pablo Isaza Denunciar

0

De su solución propuesta, parece que está tratando de hacer una redirección, pero envíe algunos datos con la redirección que volverán al servidor cuando el cliente solicite la URL redirigida (en la próxima solicitud).

No puede usar un encabezado personalizado con una redirección. El encabezado irá al navegador, pero el navegador NO incluirá el encabezado en la solicitud que sigue a la URL de redireccionamiento. Entonces su servidor no recuperará el encabezado nuevamente.

Puede enviar datos de una solicitud a la siguiente solicitud del mismo cliente de las siguientes maneras:

  1. Establezca un parámetro de consulta en la redirección para que cuando el navegador envíe la URL redirigida al servidor, los datos que adjuntó como parámetro de consulta sean parte de la URL donde su servidor pueda buscarlos y usarlos. Esto sería útil para datos que no son particularmente secretos.

  2. Use una sesión del lado del servidor como express-session . Luego, puede configurar un dato específico del cliente en el objeto de sesión (que es un objeto único para cada usuario), enviar su respuesta de redirección y luego, cuando la URL redirigida regrese en la próxima solicitud, su servidor puede verificar la sesión para los datos (leer esos datos y quizás borrarlos).

  3. Configure una cookie junto con el envío de la respuesta de redirección y luego, cuando la solicitud redirigida regrese a su servidor, puede buscar la cookie y tomar lo que quiera en la cookie (y eliminar la cookie).

Usar datos en una sesión del lado del servidor es lo más seguro (ya que los datos nunca salen del servidor) si eso es relevante para su caso de uso particular.


No puede usar req.app.get() y req.app.set() porque son globales para su servidor y, por lo tanto, varios usuarios competirán por los mismos valores, lo que causará problemas de concurrencia (donde el valor de un usuario supera al de otro usuario o uno). usuario obtiene los datos que pertenecían a otro usuario). Esta es una experiencia con errores que solo lo golpeará de vez en cuando y es difícil de reproducir y descubrir por qué las cosas salieron mal. No lo hagas de esta manera. Es similar a tratar de almacenar datos de dos usuarios en la misma variable del lado del servidor. Sólo conduce a problemas.

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