Módulo módulo básico

Módulo zlib

zlib es un módulo de compresión integrado que admite múltiples formatos y modos de compresión, como gzip, deflate y zlib.

zlib consta principalmente de las siguientes tres funciones:

  • desinflar: datos comprimidos;
  • inflar: descomprimir datos;
  • gzip: formato de compresión gzip.

Antes de usar zlib, debe elegir uno de ellos de acuerdo con el algoritmo de compresión que necesita usar. Puede consultar las constantes de zlib para seleccionar el algoritmo de compresión correspondiente. Por ejemplo, utilizamos el algoritmo de compresión deflate para la descripción del módulo:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
const zlib = require('zlib'); const { NO_COMPRESSION, BEST_SPEED, BEST_COMPRESSION, DEFAULT_COMPRESSION } = require('zlib'); // compress data const deflated = zlib.deflate('hello, world', BEST_SPEED); console.log(deflated.toString()); // decompress data const inflated = zlib.inflate(deflated); console.log(inflated.toString());

El código anterior muestra cómo comprimir y descomprimir datos. Primero use zlib.deflateel método para comprimir hello, worldla cadena, páselo BEST_SPEEDcomo la opción de nivel de compresión y luego use zlib.inflateel método para descomprimir los datos. El resultado de salida debe ser el mismo que la cadena original. .

zlib.deflatey zlib.inflateambos admiten la definición del nivel de compresión. El nivel de compresión es un número con un rango de valores de [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]. El valor predeterminado es DEFAULT_COMPRESSION. Para conocer el significado de estos cuatro niveles de compresión, puede consultar la siguiente tabla:

Nivel de compresión Significado
zlib.NO_COMPRESSION Datos sin comprimir (con soporte para completar el encabezado de compresión)
zlib.BEST_SPEED La velocidad de compresión más rápida, pero la relación de compresión es correspondientemente peor.
zlib.DEFAULT_COMPRESSION Según el valor predeterminado del algoritmo de compresión, suele ser más lento que BEST_SPEED pero tiene una tasa de compresión más alta.
zlib.BEST_COMPRESSION La relación de compresión más alta, pero en consecuencia una velocidad de compresión más lenta.

zlibLo que se debe tener en cuenta al usar el módulo es que si desea comprimir y descomprimir datos al mismo tiempo, se recomienda usarlo deflatepara comprimir los datos primero y luego usarlo inflatepara descomprimir los datos para evitar errores. Para diferentes formatos y algoritmos de compresión, existen otras clases y métodos de compresión y descompresión, que puede consultar los siguientes documentos para su uso.

función estática

createDeflate

Crear un objeto de flujo desinflado

1
static Stream zlib.createDeflate(Stream to);

Parámetros de llamada:

  • to:Stream, una secuencia utilizada para almacenar resultados de procesamiento

Resultados de devolución:

  • Stream, devuelve el objeto de flujo encapsulado

createDeflateRaw

Crear un objeto de flujo deflateRaw

1
static Stream zlib.createDeflateRaw(Stream to);

Parámetros de llamada:

  • to:Stream, una secuencia utilizada para almacenar resultados de procesamiento

Resultados de devolución:

  • Stream, devuelve el objeto de flujo encapsulado

createGunzip

Crear un objeto de flujo gunzip

1 2
static Stream zlib.createGunzip(Stream to, Integer maxSize = -1);

Parámetros de llamada:

  • to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Resultados de devolución:

  • Stream, devuelve el objeto de flujo encapsulado

createGzip

Crear un objeto de flujo gzip

1
static Stream zlib.createGzip(Stream to);

Parámetros de llamada:

  • to:Stream, una secuencia utilizada para almacenar resultados de procesamiento

Resultados de devolución:

  • Stream, devuelve el objeto de flujo encapsulado

createInflate

Crear un objeto de flujo inflado

1 2
static Stream zlib.createInflate(Stream to, Integer maxSize = -1);

Parámetros de llamada:

  • to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Resultados de devolución:

  • Stream, devuelve el objeto de flujo encapsulado

createInflateRaw

Crear un objeto de flujo inflateRaw

1 2
static Stream zlib.createInflateRaw(Stream to, Integer maxSize = -1);

Parámetros de llamada:

  • to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Resultados de devolución:

  • Stream, devuelve el objeto de flujo encapsulado

deflate

Utilice el algoritmo deflate para comprimir datos (formato zlib)

1 2
static Buffer zlib.deflate(Buffer data, Integer level = DEFAULT_COMPRESSION) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a comprimir
  • level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION

Resultados de devolución:

  • Buffer, devuelve datos binarios comprimidos

deflateTo

Utilice el algoritmo deflate para comprimir datos en objetos de flujo (formato zlib)

1 2 3
static zlib.deflateTo(Buffer data, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a comprimir
  • stm:Stream, especifica la secuencia para almacenar datos comprimidos
  • level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION

Utilice el algoritmo deflate para comprimir datos en la secuencia de origen en un objeto de secuencia (formato zlib)

1 2 3
static zlib.deflateTo(Stream src, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parámetros de llamada:

  • src:Stream, dada la secuencia en la que se encuentran los datos a comprimir
  • stm:Stream, especifica la secuencia para almacenar datos comprimidos
  • level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION

inflate

Descomprimir datos comprimidos mediante algoritmo de deflación (formato zlib)

1 2
static Buffer zlib.inflate(Buffer data, Integer maxSize = -1) async;

Parámetros de llamada:

  • data:Buffer, dados los datos comprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Resultados de devolución:

  • Buffer, devuelve los datos binarios descomprimidos

inflateTo

Descomprimir datos comprimidos por el algoritmo deflate en un objeto de flujo (formato zlib)

1 2 3
static zlib.inflateTo(Buffer data, Stream stm, Integer maxSize = -1) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a descomprimir
  • stm:Stream, especifique la secuencia para almacenar datos descomprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Descomprima los datos comprimidos por el algoritmo deflate en la secuencia de origen en un objeto de secuencia (formato zlib)

1 2 3
static zlib.inflateTo(Stream src, Stream stm, Integer maxSize = -1) async;

Parámetros de llamada:

  • src:Stream, dado el flujo en el que se encuentran los datos a descomprimir
  • stm:Stream, especifique la secuencia para almacenar datos descomprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

gzip

Comprimir datos usando el algoritmo gzip

1
static Buffer zlib.gzip(Buffer data) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a comprimir

Resultados de devolución:

  • Buffer, devuelve datos binarios comprimidos

gzipTo

Utilice el algoritmo gzip para comprimir datos en un objeto de flujo

1 2
static zlib.gzipTo(Buffer data, Stream stm) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a comprimir
  • stm:Stream, especifica la secuencia para almacenar datos comprimidos

Utilice el algoritmo gzip para comprimir los datos de la secuencia de origen en un objeto de secuencia.

1 2
static zlib.gzipTo(Stream src, Stream stm) async;

Parámetros de llamada:

  • src:Stream, dada la secuencia en la que se encuentran los datos a comprimir
  • stm:Stream, especifica la secuencia para almacenar datos comprimidos

gunzip

Descomprimir datos comprimidos por el algoritmo gzip

1 2
static Buffer zlib.gunzip(Buffer data, Integer maxSize = -1) async;

Parámetros de llamada:

  • data:Buffer, dados los datos comprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Resultados de devolución:

  • Buffer, devuelve los datos binarios descomprimidos

gunzipTo

Descomprimir datos comprimidos por el algoritmo gzip en un objeto de flujo

1 2 3
static zlib.gunzipTo(Buffer data, Stream stm, Integer maxSize = -1) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a descomprimir
  • stm:Stream, especifique la secuencia para almacenar datos descomprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Descomprima los datos comprimidos por el algoritmo gzip en la secuencia de origen en un objeto de secuencia

1 2 3
static zlib.gunzipTo(Stream src, Stream stm, Integer maxSize = -1) async;

Parámetros de llamada:

  • src:Stream, dado el flujo en el que se encuentran los datos a descomprimir
  • stm:Stream, especifique la secuencia para almacenar datos descomprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

deflateRaw

Comprimir datos usando el algoritmo deflate (deflateRaw)

1 2
static Buffer zlib.deflateRaw(Buffer data, Integer level = DEFAULT_COMPRESSION) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a comprimir
  • level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION

Resultados de devolución:

  • Buffer, devuelve datos binarios comprimidos

deflateRawTo

Utilice el algoritmo deflate para comprimir datos en objetos de flujo (deflateRaw)

1 2 3
static zlib.deflateRawTo(Buffer data, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a comprimir
  • stm:Stream, especifica la secuencia para almacenar datos comprimidos
  • level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION

Utilice el algoritmo deflate para comprimir datos en la secuencia de origen en un objeto de secuencia (deflateRaw)

1 2 3
static zlib.deflateRawTo(Stream src, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parámetros de llamada:

  • src:Stream, dada la secuencia en la que se encuentran los datos a comprimir
  • stm:Stream, especifica la secuencia para almacenar datos comprimidos
  • level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION

inflateRaw

Descomprimir datos comprimidos mediante algoritmo de deflación (inflateRaw)

1 2
static Buffer zlib.inflateRaw(Buffer data, Integer maxSize = -1) async;

Parámetros de llamada:

  • data:Buffer, dados los datos comprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Resultados de devolución:

  • Buffer, devuelve los datos binarios descomprimidos

inflateRawTo

Descomprimir datos comprimidos por el algoritmo deflate en un objeto de flujo (inflateRaw)

1 2 3
static zlib.inflateRawTo(Buffer data, Stream stm, Integer maxSize = -1) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a descomprimir
  • stm:Stream, especifique la secuencia para almacenar datos descomprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

Descomprima los datos comprimidos por el algoritmo deflate en el flujo de origen en un objeto de flujo (inflateRaw)

1 2 3
static zlib.inflateRawTo(Stream src, Stream stm, Integer maxSize = -1) async;

Parámetros de llamada:

  • src:Stream, dado el flujo en el que se encuentran los datos a descomprimir
  • stm:Stream, especifique la secuencia para almacenar datos descomprimidos
  • maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite

constante

NO_COMPRESSION

desinflar el nivel de compresión, no establecer compresión

1
const zlib.NO_COMPRESSION = 0;

BEST_SPEED

desinflar el nivel de compresión, establecer la compresión más rápida

1
const zlib.BEST_SPEED = 1;

BEST_COMPRESSION

desinflar el nivel de compresión, establecer la compresión más alta

1
const zlib.BEST_COMPRESSION = 9;

DEFAULT_COMPRESSION

desinflar el nivel de compresión, establecer la configuración predeterminada

1
const zlib.DEFAULT_COMPRESSION = -1;