Gzip 是一种流行的文件压缩算法,广泛用于减少文件大小,从而加快网络传输速度和节省存储空间。在 Node.js 中,可以使用内置的 zlib
模块来处理 Gzip 压缩和解压缩。
在 Node.js 中,主要涉及以下两种类型的 Gzip 操作:
const fs = require('fs');
const zlib = require('zlib');
const gzip = zlib.createGzip();
const input = fs.createReadStream('input.txt');
const output = fs.createWriteStream('input.txt.gz');
input.pipe(gzip).pipe(output);
const fs = require('fs');
const zlib = require('zlib');
const gunzip = zlib.createGunzip();
const input = fs.createReadStream('input.txt.gz');
const output = fs.createWriteStream('input.txt');
input.pipe(gunzip).pipe(output);
const http = require('http');
const zlib = require('zlib');
http.createServer((req, res) => {
const acceptEncoding = req.headers['accept-encoding'];
if (acceptEncoding && acceptEncoding.includes('gzip')) {
res.writeHead(200, {
'Content-Encoding': 'gzip',
'Content-Type': 'text/plain'
});
const gzip = zlib.createGzip();
const data = 'Hello, World!';
gzip.write(data);
gzip.end();
gzip.pipe(res);
} else {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
}
}).listen(3000);
zlib
模块提供了不同的压缩级别,可以通过 createGzip
方法的第二个参数来设置。通过以上方法,可以在 Node.js 中有效地使用 Gzip 进行数据压缩和解压缩操作,从而提高应用程序的性能和效率。
领取专属 10元无门槛券
手把手带您无忧上云