Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

181
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!