Al redirigir en express, es posible establecer un estado de respuesta y la URL de redireccionamiento, así:

    res.redirect(302, redirectUrl);

Cuando curl esto, no tiene un cuerpo de respuesta. Solo encabezados (incluido Location) y código de estado.

curl -X GET http://localhost:3000/my-redirect
Found. Redirecting to https://example.com/foo

Preguntas:

(1) ¿Es posible establecer también un cuerpo de respuesta? ¿Si es así, cómo?

(2) ¿Existe alguna norma que recomiende no hacer esto? Si es así, ¡enlaces por favor!

0
bguiz 20 ene. 2021 a las 08:43

1 respuesta

La mejor respuesta

Con Express it's not possible como puede ver el código aquí https://github.com/expressjs/express/blob/master/lib/response.js#L909-L953 espera 1 o 2 parámetros y también finaliza la respuesta por lo tanto, después de que finalice la respuesta, no puede enviar ninguna respuesta, pero, como siempre, puede personalizarla o anularla.

También para redireccionamientos 302 del cuerpo del mensaje isn't required pero puede enviarlo como puede ver en el código expreso Express lo envía al navegador unless it's a HEAD request .

Enlaces: https://developer.mozilla.org/en- US / docs / Web / HTTP / Status / 302, https: //tools.ietf.org/html/rfc7231#section-6.4.3

1
Dharman 20 ene. 2021 a las 06:18