在 Node.js 中,zlib 模块提供了用于压缩和解压缩数据的功能,支持多种压缩算法,例如 Gzip、Deflate 等。

以下是一些关于 Node.js 中 zlib 模块的基本用法:

1. 压缩数据(Gzip):
const zlib = require('zlib');

const inputString = 'Hello, zlib!';

zlib.gzip(inputString, (err, compressedBuffer) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('Compressed data:', compressedBuffer.toString('base64'));
});

2. 解压数据(Gzip):
const zlib = require('zlib');

const compressedBuffer = Buffer.from('H4sIAAAAAAAAA7NIzcnJVyjPL8pJUQQAlGoa9gAAAA==', 'base64');

zlib.gunzip(compressedBuffer, (err, decompressedBuffer) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('Decompressed data:', decompressedBuffer.toString());
});

3. 压缩数据(Deflate):
const zlib = require('zlib');

const inputString = 'Hello, zlib!';

zlib.deflate(inputString, (err, compressedBuffer) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('Compressed data:', compressedBuffer.toString('base64'));
});

4. 解压数据(Deflate):
const zlib = require('zlib');

const compressedBuffer = Buffer.from('eJzzSM3JyVcoz+vyklRBAF5GhvQ=', 'base64');

zlib.inflate(compressedBuffer, (err, decompressedBuffer) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log('Decompressed data:', decompressedBuffer.toString());
});

这些示例展示了在 Node.js 中使用 zlib 模块进行数据压缩和解压缩的基本用法。zlib 模块对于处理需要传输的大量数据或者需要减小文件大小的场景非常有用。在实际应用中,你可以根据需要选择合适的压缩算法和方法。


转载请注明出处:http://www.zyzy.cn/article/detail/4789/Node.js