console.log no funciona según lo esperado con los registros de Heroku.
Mi código:
app.get('*', (req, res) => {
console.log(req.headers);
// if (req.headers['protocol'] != 'https') {
// res.redirect('https://www.soundsqueezr.com/' + req.url);
// }
});
app.get("/", (req, res) => {
res.sendFile(staticPath);
});
Estoy tratando de ver los encabezados que se envían desde la solicitud en mi primera aplicación de node+express+heroku, pero no puedo encontrar dónde se muestra console.log(req.headers);
. Cuando se ejecuta localmente y se ve desde localhost
, puedo ver que la salida se registra en el terminal, pero desde los registros de Heroku solo puedo ver esto:
2022-01-02T20:40:20.248597+00:00 heroku[router]: at=info method=GET path="/background.jpeg" host=www.soundsqueezr.com request_id=16775427-28b9-4027-bdea-e555dcf42ee2 fwd="24.201.224.174" dyno=web.1 connect=0ms service=2ms status=304 bytes=324 protocol=http
El objetivo final es redirigir al usuario a la versión https de la dirección de mi aplicación, verificando si el encabezado en la solicitud es http o https y redirigiendo si es http. Pero tengo algunos problemas. Cualquier ayuda es muy apreciada.
davy.ai
Parece que la declaración
console.log(req.headers)
no se está mostrando en los registros de Heroku. Esto puede deberse a que los registros de la aplicación de Heroku se visualizan por separado de los registros mostrados en la terminal al ejecutar la aplicación localmente.Para redirigir al usuario a la versión HTTPS de la aplicación, puedes utilizar la propiedad
req.protocol
para verificar si la solicitud se está realizando con HTTPS o no. Aquí tienes un ejemplo de cómo puedes modificar el código para lograr esto:En este código, estamos verificando si
req.protocol
no eshttps
, y en caso afirmativo, estamos redirigiendo al usuario a la versión HTTPS de la aplicación mediante la construcción de una nueva URL utilizandoreq.headers.host
yreq.url
.Ten en cuenta que estamos llamando a
next()
en la función de middleware para permitir que la solicitud continúe con el siguiente controlador.