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

122
Visualizações
Transform `Request` headers to plain key value object

I am trying to convert a list of headers from a Request (see https://developer.mozilla.org/en-US/docs/Web/API/Request/headers) object to a plain key/value object.

// Create a Request object.
const req = new Request('https://example.com', {
    headers: {
        'X-Test-header': 'Test'
    }
});

Sadly, the following doesn't work because the headers property is an iterator:

Unusable result:

const result1 = JSON.stringify(req.headers);
// result1 =  `{}`

Usable result but very verbose to create:

const headers = {};
for(const [key, value] of req.headers.entries()) {
    headers[key] = value;
}
const result2 = JSON.stringify(headers)
// result2 = `{'X-Test-Header': 'Test'}`

I'm looking for some sort of a one liner (maybe including Array.from() or some of the other methods on the Request.headers object like .keys()/.values() so that I am able to stringify the result.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You could use the Object.fromEntries() method, and then stringify that object like below. The .fromEntries() method will invoke the iterator of your headers object (ie: the .entries()) to grab the entries of the header object, and then use that to create an object. You can then pass this to JSON.stringify() to get your JSON string:

const req = new Request('https://example.com', {
    headers: {
        'X-Test-header': 'Test'
    }
});

const result1 = JSON.stringify(Object.fromEntries(req.headers));
console.log(result1);

about 4 years ago · Juan Pablo Isaza Relatório

0

If you just want to grab the headers as a regular object then you could generate an 2d array with key-value pair using Array.from() and create an object from the 2d array using Object.fromEntries()

const req = new Request('https://example.com', {
    headers: {
      'X-Test-header': 'Test',
      'accepts': 'application/json'
    }
});

const headers = Object.fromEntries(Array.from(req.headers.entries()));


console.log(JSON.stringify(headers));

Why this is working? The req.headers.entries() provides you an Interator {} which is an array type but not array. So, you could not implement any Array.prototype methods on it. But fortunately, Array.from() accepts any array type and converts it into an array.

So, Array.from(req.headers.entries()) generates an 2D array like -

[['X-Test-header', 'Test'], ['accepts', 'application/json']]

And if you see the Object.fromEntries() structure, then you find that this method takes the same 2D type array for generating an object.

Now you could apply JSON.stringify() on the headers object.

about 4 years ago · Juan Pablo Isaza 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