Mòdul zlib
zlib és un mòdul de compressió integrat que admet diversos formats i modes de compressió com ara gzip, deflate i zlib.
zlib consta principalment de les tres funcions següents:
- desinflar: dades comprimides;
- inflar: descomprimir dades;
- gzip: format de compressió gzip.
Abans d'utilitzar zlib, heu de triar-ne un segons l'algoritme de compressió que heu d'utilitzar. Podeu consultar les constants de zlib per seleccionar l'algorisme de compressió corresponent. Per exemple, utilitzem l'algoritme de compressió desinflat per a la descripció del mòdul:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const 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 codi anterior mostra com comprimir i descomprimir les dades. Primer utilitzeu zlib.deflate
el mètode per comprimir hello, world
la cadena i introduïu-lo BEST_SPEED
com a opció de nivell de compressió, i després utilitzeu zlib.inflate
el mètode per descomprimir les dades. El resultat de sortida hauria de ser el mateix que la cadena original. .
zlib.deflate
i zlib.inflate
tots dos admeten la definició del nivell de compressió. El nivell de compressió és un nombre amb un rang de valors de [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]
. El valor per defecte és DEFAULT_COMPRESSION
. Per conèixer el significat d'aquests quatre nivells de compressió, podeu consultar la taula següent:
Nivell de compressió | Significat |
---|---|
zlib.NO_COMPRESSION | Dades sense comprimir (amb suport per a la finalització de la capçalera de compressió) |
zlib.BEST_SPEED | La velocitat de compressió més ràpida, però la relació de compressió és corresponentment pitjor. |
zlib.DEFAULT_COMPRESSION | Segons el valor predeterminat de l'algorisme de compressió, normalment és més lent que BEST_SPEED, però té una taxa de compressió més alta. |
zlib.BEST_COMPRESSION | Relació de compressió més alta, però la velocitat de compressió corresponentment més lenta. |
zlib
El que cal tenir en compte quan utilitzeu el mòdul és que si voleu comprimir i descomprimir dades al mateix temps, es recomana utilitzar-lo deflate
per comprimir les dades primer i després utilitzar-lo inflate
per descomprimir les dades per evitar errors. Per a diferents formats i algorismes de compressió, hi ha altres classes i mètodes de compressió i descompressió. Podeu consultar els documents següents per utilitzar-los.
funció estàtica
createDeflate
Creeu un objecte de flux desinflat
1static Stream zlib.createDeflate(Stream to);
Paràmetres de trucada:
- to:Stream, un flux utilitzat per emmagatzemar els resultats del processament
Resultats de retorn:
- Stream, retorna l'objecte de flux encapsulat
createDeflateRaw
Creeu un objecte de flux deflateRaw
1static Stream zlib.createDeflateRaw(Stream to);
Paràmetres de trucada:
- to:Stream, un flux utilitzat per emmagatzemar els resultats del processament
Resultats de retorn:
- Stream, retorna l'objecte de flux encapsulat
createGunzip
Creeu un objecte de flux gunzip
1
2static Stream zlib.createGunzip(Stream to,
Integer maxSize = -1);
Paràmetres de trucada:
- to:Stream, un flux utilitzat per emmagatzemar els resultats del processament
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Resultats de retorn:
- Stream, retorna l'objecte de flux encapsulat
createGzip
Creeu un objecte de flux gzip
1static Stream zlib.createGzip(Stream to);
Paràmetres de trucada:
- to:Stream, un flux utilitzat per emmagatzemar els resultats del processament
Resultats de retorn:
- Stream, retorna l'objecte de flux encapsulat
createInflate
Creeu un objecte de flux inflat
1
2static Stream zlib.createInflate(Stream to,
Integer maxSize = -1);
Paràmetres de trucada:
- to:Stream, un flux utilitzat per emmagatzemar els resultats del processament
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Resultats de retorn:
- Stream, retorna l'objecte de flux encapsulat
createInflateRaw
Creeu un objecte de flux inflateRaw
1
2static Stream zlib.createInflateRaw(Stream to,
Integer maxSize = -1);
Paràmetres de trucada:
- to:Stream, un flux utilitzat per emmagatzemar els resultats del processament
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Resultats de retorn:
- Stream, retorna l'objecte de flux encapsulat
deflate
Utilitzeu l'algorisme desinflat per comprimir dades (format zlib)
1
2static Buffer zlib.deflate(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a comprimir
- level: Enter, especifica el nivell de compressió, el valor per defecte és DEFAULT_COMPRESSION
Resultats de retorn:
- Buffer, retorna dades binàries comprimides
deflateTo
Utilitzeu l'algorisme desinflat per comprimir dades en objectes de flux (format zlib)
1
2
3static zlib.deflateTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a comprimir
- stm:Stream, especifica el flux per emmagatzemar dades comprimides
- level: Enter, especifica el nivell de compressió, el valor per defecte és DEFAULT_COMPRESSION
Utilitzeu l'algoritme de desinflació per comprimir les dades del flux d'origen en un objecte de flux (format zlib)
1
2
3static zlib.deflateTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Paràmetres de trucada:
- src:Stream, donat el flux en què es troben les dades a comprimir
- stm:Stream, especifica el flux per emmagatzemar dades comprimides
- level: Enter, especifica el nivell de compressió, el valor per defecte és DEFAULT_COMPRESSION
inflate
Descomprimir dades comprimides per algorisme de desinflació (format zlib)
1
2static Buffer zlib.inflate(Buffer data,
Integer maxSize = -1) async;
Paràmetres de trucada:
- data:Buffer, donades les dades comprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Resultats de retorn:
- Buffer, retorna les dades binàries descomprimides
inflateTo
Descomprimiu les dades comprimides per l'algoritme de desinflació en un objecte de flux (format zlib)
1
2
3static zlib.inflateTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a descomprimir
- stm:Stream, especifiqueu el flux per emmagatzemar les dades descomprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Descomprimiu les dades comprimides per l'algoritme de desinflació al flux d'origen en un objecte de flux (format zlib)
1
2
3static zlib.inflateTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Paràmetres de trucada:
- src:Stream, donat el flux en què es troben les dades a descomprimir
- stm:Stream, especifiqueu el flux per emmagatzemar les dades descomprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
gzip
Comprimiu dades mitjançant l'algorisme gzip
1static Buffer zlib.gzip(Buffer data) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a comprimir
Resultats de retorn:
- Buffer, retorna dades binàries comprimides
gzipTo
Utilitzeu l'algoritme gzip per comprimir dades en un objecte de flux
1
2static zlib.gzipTo(Buffer data,
Stream stm) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a comprimir
- stm:Stream, especifica el flux per emmagatzemar dades comprimides
Utilitzeu l'algoritme gzip per comprimir les dades del flux d'origen en un objecte del flux.
1
2static zlib.gzipTo(Stream src,
Stream stm) async;
Paràmetres de trucada:
- src:Stream, donat el flux en què es troben les dades a comprimir
- stm:Stream, especifica el flux per emmagatzemar dades comprimides
gunzip
Descomprimiu les dades comprimides per l'algoritme gzip
1
2static Buffer zlib.gunzip(Buffer data,
Integer maxSize = -1) async;
Paràmetres de trucada:
- data:Buffer, donades les dades comprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Resultats de retorn:
- Buffer, retorna les dades binàries descomprimides
gunzipTo
Descomprimiu les dades comprimides amb l'algoritme gzip en un objecte de flux
1
2
3static zlib.gunzipTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a descomprimir
- stm:Stream, especifiqueu el flux per emmagatzemar les dades descomprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Descomprimiu les dades comprimides amb l'algoritme gzip del flux d'origen en un objecte del flux
1
2
3static zlib.gunzipTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Paràmetres de trucada:
- src:Stream, donat el flux en què es troben les dades a descomprimir
- stm:Stream, especifiqueu el flux per emmagatzemar les dades descomprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
deflateRaw
Comprimiu dades mitjançant l'algoritme de deflate (deflateRaw)
1
2static Buffer zlib.deflateRaw(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a comprimir
- level: Enter, especifica el nivell de compressió, el valor per defecte és DEFAULT_COMPRESSION
Resultats de retorn:
- Buffer, retorna dades binàries comprimides
deflateRawTo
Utilitzeu l'algoritme de deflació per comprimir dades en objectes de flux (deflateRaw)
1
2
3static zlib.deflateRawTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a comprimir
- stm:Stream, especifica el flux per emmagatzemar dades comprimides
- level: Enter, especifica el nivell de compressió, el valor per defecte és DEFAULT_COMPRESSION
Utilitzeu l'algoritme de deflate per comprimir les dades del flux d'origen en un objecte de flux (deflateRaw)
1
2
3static zlib.deflateRawTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Paràmetres de trucada:
- src:Stream, donat el flux en què es troben les dades a comprimir
- stm:Stream, especifica el flux per emmagatzemar dades comprimides
- level: Enter, especifica el nivell de compressió, el valor per defecte és DEFAULT_COMPRESSION
inflateRaw
Descomprimir dades comprimides per algorisme de desinflat (inflateRaw)
1
2static Buffer zlib.inflateRaw(Buffer data,
Integer maxSize = -1) async;
Paràmetres de trucada:
- data:Buffer, donades les dades comprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Resultats de retorn:
- Buffer, retorna les dades binàries descomprimides
inflateRawTo
Descomprimiu les dades comprimides per l'algoritme de desinflat en un objecte de flux (inflateRaw)
1
2
3static zlib.inflateRawTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a descomprimir
- stm:Stream, especifiqueu el flux per emmagatzemar les dades descomprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
Descomprimiu les dades comprimides per l'algoritme de desinflació del flux d'origen en un objecte de flux (inflateRaw)
1
2
3static zlib.inflateRawTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Paràmetres de trucada:
- src:Stream, donat el flux en què es troben les dades a descomprimir
- stm:Stream, especifiqueu el flux per emmagatzemar les dades descomprimides
- maxSize: Sencer, especifica el límit de mida de descompressió, el valor predeterminat és -1, sense límit
constant
NO_COMPRESSION
desinflar el nivell de compressió, no establir compressió
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
desinfla el nivell de compressió, estableix la compressió més ràpida
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
desinflar el nivell de compressió, establir la compressió més alta
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
desinflar el nivell de compressió, establir la configuració predeterminada
1const zlib.DEFAULT_COMPRESSION = -1;