Módulo módulo básico

Módulo zlib

zlib é un módulo de compresión integrado que admite varios formatos e modos de compresión como gzip, deflate e zlib.

zlib consta principalmente das seguintes tres funcións:

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

Antes de usar zlib, cómpre escoller un deles segundo o algoritmo de compresión que necesitas usar. Podes consultar as constantes de zlib para seleccionar o algoritmo de compresión correspondente. Por exemplo, usamos o algoritmo de compresión desinflado para a descrición do 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());

O código anterior mostra como comprimir e descomprimir os datos. Primeiro utiliza zlib.deflateo método para comprimir hello, worlda cadea, pasa BEST_SPEEDcomo opción de nivel de compresión e despois usa zlib.inflateo método para descomprimir os datos. O resultado de saída debe ser o mesmo que a cadea orixinal. .

zlib.deflatee zlib.inflateambos admiten definir o nivel de compresión. O nivel de compresión é un número cun intervalo de valores de [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]. O valor predeterminado é DEFAULT_COMPRESSION. Para coñecer o significado destes catro niveis de compresión, podes consultar a seguinte táboa:

Nivel de compresión Significado
zlib.NO_COMPRESSION Datos sen comprimir (con soporte para completar o encabezado de compresión)
zlib.BEST_SPEED A velocidade de compresión máis rápida, pero a relación de compresión é, en consecuencia, peor.
zlib.DEFAULT_COMPRESSION Segundo o valor predeterminado do algoritmo de compresión, adoita ser máis lento que BEST_SPEED pero ten unha taxa de compresión máis alta.
zlib.BEST_COMPRESSION Relación de compresión máis alta, pero a velocidade de compresión correspondentemente máis lenta.

zlibO que hai que ter en conta ao usar o módulo é que se quere comprimir e descomprimir datos ao mesmo tempo, recoméndase usalo deflatepara comprimir os datos primeiro e despois utilizalo inflatepara descomprimir os datos para evitar erros. Para os diferentes formatos e algoritmos de compresión, hai outras clases e métodos de compresión e descompresión. Podes consultar os seguintes documentos para usar.

función estática

createDeflate

Crea un obxecto de fluxo desinflado

1
static Stream zlib.createDeflate(Stream to);

Parámetros de chamada:

  • to:Stream, un fluxo utilizado para almacenar os resultados do procesamento

Resultados de devolución:

  • Stream, devolve o obxecto de fluxo encapsulado

createDeflateRaw

Crea un obxecto de fluxo deflateRaw

1
static Stream zlib.createDeflateRaw(Stream to);

Parámetros de chamada:

  • to:Stream, un fluxo utilizado para almacenar os resultados do procesamento

Resultados de devolución:

  • Stream, devolve o obxecto de fluxo encapsulado

createGunzip

Crea un obxecto de fluxo gunzip

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

Parámetros de chamada:

  • to:Stream, un fluxo utilizado para almacenar os resultados do procesamento
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Resultados de devolución:

  • Stream, devolve o obxecto de fluxo encapsulado

createGzip

Crea un obxecto de fluxo gzip

1
static Stream zlib.createGzip(Stream to);

Parámetros de chamada:

  • to:Stream, un fluxo utilizado para almacenar os resultados do procesamento

Resultados de devolución:

  • Stream, devolve o obxecto de fluxo encapsulado

createInflate

Crea un obxecto de fluxo inflado

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

Parámetros de chamada:

  • to:Stream, un fluxo utilizado para almacenar os resultados do procesamento
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Resultados de devolución:

  • Stream, devolve o obxecto de fluxo encapsulado

createInflateRaw

Crea un obxecto de fluxo inflateRaw

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

Parámetros de chamada:

  • to:Stream, un fluxo utilizado para almacenar os resultados do procesamento
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Resultados de devolución:

  • Stream, devolve o obxecto de fluxo encapsulado

deflate

Usa o algoritmo de desinflación para comprimir datos (formato zlib)

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

Parámetros de chamada:

  • data:Buffer, dados os datos a comprimir
  • level: Enteiro, especifica o nivel de compresión, o valor predeterminado é DEFAULT_COMPRESSION

Resultados de devolución:

  • Buffer, devolve datos binarios comprimidos

deflateTo

Usa o algoritmo de desinflado para comprimir datos en obxectos de fluxo (formato zlib)

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

Parámetros de chamada:

  • data:Buffer, dados os datos a comprimir
  • stm:Stream, especifica o fluxo para almacenar datos comprimidos
  • level: Enteiro, especifica o nivel de compresión, o valor predeterminado é DEFAULT_COMPRESSION

Use o algoritmo de desinflado para comprimir os datos do fluxo de orixe nun obxecto de fluxo (formato zlib)

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

Parámetros de chamada:

  • src:Stream, dado o fluxo no que se atopan os datos a comprimir
  • stm:Stream, especifica o fluxo para almacenar datos comprimidos
  • level: Enteiro, especifica o nivel de compresión, o valor predeterminado é DEFAULT_COMPRESSION

inflate

Descomprimir datos comprimidos mediante un algoritmo de desinflado (formato zlib)

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

Parámetros de chamada:

  • data:Buffer, dados os datos comprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Resultados de devolución:

  • Buffer, devolve os datos binarios descomprimidos

inflateTo

Descomprimir os datos comprimidos polo algoritmo de desinflado nun obxecto de fluxo (formato zlib)

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

Parámetros de chamada:

  • data:Buffer, dados os datos a descomprimir
  • stm:Stream, especifique o fluxo para almacenar os datos descomprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Descomprime os datos comprimidos polo algoritmo de desinflado no fluxo de orixe nun obxecto de fluxo (formato zlib)

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

Parámetros de chamada:

  • src:Stream, dado o fluxo no que se atopan os datos a descomprimir
  • stm:Stream, especifique o fluxo para almacenar os datos descomprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

gzip

Comprimir datos usando o algoritmo gzip

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

Parámetros de chamada:

  • data:Buffer, dados os datos a comprimir

Resultados de devolución:

  • Buffer, devolve datos binarios comprimidos

gzipTo

Use o algoritmo gzip para comprimir datos nun obxecto de fluxo

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

Parámetros de chamada:

  • data:Buffer, dados os datos a comprimir
  • stm:Stream, especifica o fluxo para almacenar datos comprimidos

Use o algoritmo gzip para comprimir os datos do fluxo de orixe nun obxecto de fluxo.

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

Parámetros de chamada:

  • src:Stream, dado o fluxo no que se atopan os datos a comprimir
  • stm:Stream, especifica o fluxo para almacenar datos comprimidos

gunzip

Descomprime os datos comprimidos polo algoritmo gzip

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

Parámetros de chamada:

  • data:Buffer, dados os datos comprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Resultados de devolución:

  • Buffer, devolve os datos binarios descomprimidos

gunzipTo

Descomprime os datos comprimidos co algoritmo gzip nun obxecto de fluxo

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

Parámetros de chamada:

  • data:Buffer, dados os datos a descomprimir
  • stm:Stream, especifique o fluxo para almacenar os datos descomprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Descomprime os datos comprimidos polo algoritmo gzip no fluxo de orixe nun obxecto de fluxo

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

Parámetros de chamada:

  • src:Stream, dado o fluxo no que se atopan os datos a descomprimir
  • stm:Stream, especifique o fluxo para almacenar os datos descomprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

deflateRaw

Comprimir datos usando o algoritmo de deflación (deflateRaw)

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

Parámetros de chamada:

  • data:Buffer, dados os datos a comprimir
  • level: Enteiro, especifica o nivel de compresión, o valor predeterminado é DEFAULT_COMPRESSION

Resultados de devolución:

  • Buffer, devolve datos binarios comprimidos

deflateRawTo

Usa o algoritmo de deflación para comprimir datos en obxectos de fluxo (deflateRaw)

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

Parámetros de chamada:

  • data:Buffer, dados os datos a comprimir
  • stm:Stream, especifica o fluxo para almacenar datos comprimidos
  • level: Enteiro, especifica o nivel de compresión, o valor predeterminado é DEFAULT_COMPRESSION

Use o algoritmo de deflación para comprimir os datos do fluxo de orixe nun obxecto de fluxo (deflateRaw)

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

Parámetros de chamada:

  • src:Stream, dado o fluxo no que se atopan os datos a comprimir
  • stm:Stream, especifica o fluxo para almacenar datos comprimidos
  • level: Enteiro, especifica o nivel de compresión, o valor predeterminado é DEFAULT_COMPRESSION

inflateRaw

Descomprimir datos comprimidos polo algoritmo de desinflado (inflateRaw)

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

Parámetros de chamada:

  • data:Buffer, dados os datos comprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Resultados de devolución:

  • Buffer, devolve os datos binarios descomprimidos

inflateRawTo

Descomprime os datos comprimidos polo algoritmo de desinflado nun obxecto de fluxo (inflateRaw)

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

Parámetros de chamada:

  • data:Buffer, dados os datos a descomprimir
  • stm:Stream, especifique o fluxo para almacenar os datos descomprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

Descomprime os datos comprimidos polo algoritmo de desinflado no fluxo de orixe nun obxecto de fluxo (inflateRaw)

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

Parámetros de chamada:

  • src:Stream, dado o fluxo no que se atopan os datos a descomprimir
  • stm:Stream, especifique o fluxo para almacenar os datos descomprimidos
  • maxSize: Número enteiro, especifica o límite de tamaño de descompresión, o valor predeterminado é -1, sen límite

constante

NO_COMPRESSION

desinflar o nivel de compresión, non establecer compresión

1
const zlib.NO_COMPRESSION = 0;

BEST_SPEED

desinflar o nivel de compresión, establecer a compresión máis rápida

1
const zlib.BEST_SPEED = 1;

BEST_COMPRESSION

desinflar o nivel de compresión, establecer a compresión máis alta

1
const zlib.BEST_COMPRESSION = 9;

DEFAULT_COMPRESSION

desinflar o nivel de compresión, establecer a configuración predeterminada

1
const zlib.DEFAULT_COMPRESSION = -1;