Categories
JavaScript Answers

How to decompress a Node.js request’s module gzip response body?

Spread the love

Sometimes, we want to decompress a Node.js request’s module gzip response body.

In this article, we’ll look at how to decompress a Node.js request’s module gzip response body.

How to decompress a Node.js request’s module gzip response body?

To decompress a Node.js request’s module gzip response body, we can set the encoding option to null and then use the zlib.gunzip method.

For instance, we write

const request = require('request');
const zlib = require('zlib');

request(url, {
  encoding: null
}, (err, response, body) => {
  if (response.headers['content-encoding'] === 'gzip') {
    zlib.gunzip(body, (err, unzipped) => {
      callback(unzipped.toString());
    });
  } else {
    callback(body);
  }
});

to call request with an object that has encoding set to null.

Then in the callback, we check if the content-encoding response header is 'gzip'.

If it is, then we call zlib.gunzip to decompress the response body.

And then we can get the unzipped response contents from the unzipped parameter in the gunzip callback.

Conclusion

To decompress a Node.js request’s module gzip response body, we can set the encoding option to null and then use the zlib.gunzip method.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *