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

212
Visualizações
Nodo/Express No puedo configurar el encabezado en mi ruta

Tengo un backend que usa Node y el framework Express y un frontend en React. El código está en Typescript.

Mi backend usa el cliente de búsqueda elástico para obtener los datos, pero no creo que ese sea el problema.

Necesito recuperar un parámetro que obtengo del backend a través del encabezado http de mi respuesta en mi interfaz.

Para hacer esto, utilicé estas dos funciones del documento Express http://expressjs.com/en/4x/api.html#res.set y http://expressjs.com/en/4x/api.html#res. json

Así que escribí el siguiente código para mi ruta:

 searchRouter.get('/search', (asyncHandler(async (req, res) => { const response = await client.search<HitResult>({ index: my-index, scroll: "1m", body: { My elastic request } }); res.set('data_to_send',response.body.data_to_send); console.log('is there a hearder? ', res.headersSent) //always return false res.json(response); })));

Pero el encabezado no cambia con este método. Así que traté de crear una función asíncrona para llenar mi encabezado con el siguiente código:

 async function buildHeader(response: express.Response<any, Record<string, any>>, headerName: string, headerValue: string | undefined): Promise<any> { response.header(headerName,headerValue); } searchRouter.get('/search', (asyncHandler(async (req, res) => { const response = await client.search<HitResult>({ index: my-index, scroll: "1m", body: { My elastic request } }); await buildHeader(res, 'data_to_send', response.body.data_to_send); console.log('is there a hearder? ', res.headersSent) //always return false res.json(response); })));

Haga lo que haga la cabecera no cambia y mantiene su forma básica, la siguiente:

 content-length: "50643" content-type: "application/json; charset=utf-8"

¿Alguien ve lo que estoy haciendo mal y podría ayudarme, eso me salvaría? Gracias por adelantado :)

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Como me señaló Itai, mi problema provino del middleware que estaba usando, CORS. Agregando en las opciones de este middleware los dos campos siguientes:

 'allowedHeaders': ['data_to_send'], 'exposedHeaders': ['data_to_send'],

Todo funciona como se esperaba. Para obtener más información: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers

over 4 years ago · Santiago Trujillo 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