Search code examples
javascriptnode.jsjsonparsingnode-fetch

Nodejs Parse fetch response containing object [Symbol(map)]


I do not know how to access the parameter x-error-detail-header.

I receive this response headers from a request using node-fetch npm package:

Headers {
  [Symbol(map)]: {
    'content-type': ['text/xml'],
    date: ['Fri, 27 Apr 2018 09:46:56 GMT'],
    'retry-after': ['51184'],
    server: ['xxxxx'],
    'x-error-detail-header': ['Account Over Rate Limit'],
    'x-x-error-code': ['ERR_403_DEVELOPER_OVER_RATE'],
    'x-x-responder': ['xxxxxxx.com'],
    'x-plan-qps-allotted': ['2'],
    'x-plan-qps-current': ['1'],
    'x-plan-quota-allotted': ['50'],
    'x-plan-quota-current': ['51'],
    'x-plan-quota-reset': ['Saturday, April 28, 2018 12:00:00 AM GMT'],
    'content-length': ['28'],
    connection: ['Close']
  }
}

My problem is that I do not know how to access the parameters that are inside [Symbol(map)] object.


Solution

  • It is a Headers object. It has e.g. get and forEach methods. For example:

    getDownload = async (url) => {
        const response = await fetch(url);
        console.log(response.headers.get('content-type'));
        return {
            name: response.headers.get('Content-Disposition'),
            length: response.headers.get('content-length')
        }
    }
    

    Note the case insensitivity.