Created
December 24, 2018 11:44
-
-
Save anshulrgoyal/f2e5e3a7c90e1de4b5eed93ed6da6284 to your computer and use it in GitHub Desktop.
How to compress a response
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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