Skip to content

Instantly share code, notes, and snippets.

@anshulrgoyal
Created December 24, 2018 11:44
Show Gist options
  • Select an option

  • Save anshulrgoyal/f2e5e3a7c90e1de4b5eed93ed6da6284 to your computer and use it in GitHub Desktop.

Select an option

Save anshulrgoyal/f2e5e3a7c90e1de4b5eed93ed6da6284 to your computer and use it in GitHub Desktop.
How to compress a response
const http = require("http");
const fs = require("fs");
const zlib = require("zlib");
const server = http.createServer();
server.on("request", (req, res) => {
const data = "random string";
const encodingHeader = req.headers["accept-encoding"];
let compressedDataStream;
// for deflate
if (/\bdeflate\b/.test(encodingHeader)) {
compressedDataStream = zlib.createDeflate();
res.writeHead(200, { "Content-Encoding": "deflate" });
compressedDataStream.pipe(res);
compressedDataStream.write(data);
compressedDataStream.end();
// for gzip
} else if (/\bgzip\b/.test(encodingHeader)) {
compressedDataStream = zlib.createGzip();
res.writeHead(200, { "Content-Encoding": "gzip" });
compressedDataStream.pipe(res);
compressedDataStream.write(data);
compressedDataStream.end();
// if does understand encoding
} else {
res.writeHead(200);
res.write(data);
res.end();
}
});
server.listen(3001);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment