最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js實(shí)現(xiàn)壓縮與解壓數(shù)據(jù)

 更新時(shí)間:2022年07月06日 10:22:46   作者:社會(huì)主義接班人  
這篇文章介紹了Node.js實(shí)現(xiàn)壓縮與解壓數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Node.js中提供了一個(gè)很好的庫(kù)Zlib來(lái)壓縮解壓數(shù)據(jù)。

一、壓縮緩沖區(qū)

Zlib中有下面幾個(gè)函數(shù)方便解壓縮緩沖區(qū).

  • gzip/gunzip:標(biāo)準(zhǔn)gzip壓縮.
  • deflate/inflate:基于Huffman編碼的標(biāo)準(zhǔn)deflate壓縮算法。
  • deflateRaw/inflateRaw:針對(duì)原始緩沖區(qū)的deflate壓縮算法。

它們的函數(shù)都是function(buffer,callback).

var zlib = require("zlib");
var input = '...............text...............';
zlib.deflate(input, function(err, buffer) {
  if (!err) {
    console.log("deflate (%s): ", buffer.length, buffer.toString('base64'));
    zlib.inflate(buffer, function(err, buffer) {
      if (!err) {
        console.log("inflate (%s): ", buffer.length, buffer.toString());
      }
    });
    zlib.unzip(buffer, function(err, buffer) {
      if (!err) {
        console.log("unzip deflate (%s): ", buffer.length, buffer.toString());
      }
    });
  }
});

zlib.deflateRaw(input, function(err, buffer) {
  if (!err) {
    console.log("deflateRaw (%s): ", buffer.length, buffer.toString('base64'));
    zlib.inflateRaw(buffer, function(err, buffer) {
      if (!err) {
        console.log("inflateRaw (%s): ", buffer.length, buffer.toString());
      }
    });
  }
});

zlib.gzip(input, function(err, buffer) {
  if (!err) {
    console.log("gzip (%s): ", buffer.length, buffer.toString('base64'));
    zlib.gunzip(buffer, function(err, buffer) {
      if (!err) {
        console.log("gunzip (%s): ", buffer.length, buffer.toString());
      }
    });
    zlib.unzip(buffer, function(err, buffer) {
      if (!err) {
        console.log("unzip gzip (%s): ", buffer.length, buffer.toString());
      }
    });
  }
});

輸出結(jié)果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe zlib_buffers.js
deflate (18):  eJzT00MBJakVJagiegB9Zgcq
deflateRaw (12):  09NDASWpFSWoInoA
gzip (30):  H4sIAAAAAAAAC9PTQwElqRUlqCJ6AIq+x+AiAAAA
inflate (34):  ...............text...............
unzip deflate (34):  ...............text...............
inflateRaw (34):  ...............text...............
gunzip (34):  ...............text...............
unzip gzip (34):  ...............text...............

Process finished with exit code 0

二、壓縮文件

可通過(guò)pipe()將壓縮/解壓對(duì)象從一個(gè)流輸送到另一個(gè)流。

var zlib = require("zlib");
var gzip = zlib.createGzip();
var fs = require('fs');
var inFile = fs.createReadStream('zlib_file.js');
var outFile = fs.createWriteStream('zlib_file.gz');
inFile.pipe(gzip).pipe(outFile);
setTimeout(function(){
  var gunzip = zlib.createUnzip({flush: zlib.Z_FULL_FLUSH});
  var inFile = fs.createReadStream('zlib_file.gz');
  var outFile = fs.createWriteStream('zlib_file.unzipped');
  inFile.pipe(gunzip).pipe(outFile);
}, 3000);

上面代碼中前面是readable流通過(guò)pipe使用壓縮zlib.createGzip()然后輸出到writeable中。后面的是解壓的過(guò)程。

到此這篇關(guān)于Node.js實(shí)現(xiàn)壓縮與解壓數(shù)據(jù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)

    Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)

    本文主要介紹了Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 修改NPM全局模式的默認(rèn)安裝路徑的方法

    修改NPM全局模式的默認(rèn)安裝路徑的方法

    這篇文章主要介紹了修改NPM全局模式的默認(rèn)安裝路徑的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 一文詳解node.js有哪些全局對(duì)象呢

    一文詳解node.js有哪些全局對(duì)象呢

    這篇文章主要介紹了一文詳解node.js有哪些全局對(duì)象呢,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-09-09
  • Node.js使用cookie保持登錄的方法

    Node.js使用cookie保持登錄的方法

    本篇文章主要介紹了Node.js使用cookie保持登錄的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Node.js實(shí)現(xiàn)簡(jiǎn)單聊天服務(wù)器

    Node.js實(shí)現(xiàn)簡(jiǎn)單聊天服務(wù)器

    Node.js 是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的一個(gè)平臺(tái), 用來(lái)方便地搭建快速的,易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用,今天我們來(lái)探討下,如何使用node.js實(shí)現(xiàn)簡(jiǎn)單的聊天服務(wù)器
    2014-06-06
  • node.js如何充分利用多核cpu

    node.js如何充分利用多核cpu

    這篇文章主要介紹了node.js如何充分利用多核cpu,想了解node.js的同學(xué),可以參考下
    2021-04-04
  • node.JS二進(jìn)制操作模塊buffer對(duì)象使用方法詳解

    node.JS二進(jìn)制操作模塊buffer對(duì)象使用方法詳解

    在ES6引入TypedArray之前,JavaScript語(yǔ)言沒(méi)有讀取或操作二進(jìn)制數(shù)據(jù)流的機(jī)制,本文為大家詳細(xì)介紹nodeJS中二進(jìn)制操作模塊buffer對(duì)象使用方法詳解
    2020-02-02
  • 詳解nodejs微信公眾號(hào)開(kāi)發(fā)——1.接入微信公眾號(hào)

    詳解nodejs微信公眾號(hào)開(kāi)發(fā)——1.接入微信公眾號(hào)

    本篇文章主要介紹了詳解nodejs微信公眾號(hào)開(kāi)發(fā)——1.接入微信公眾號(hào),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • cnpm安裝詳細(xì)步驟(附圖文!)

    cnpm安裝詳細(xì)步驟(附圖文!)

    由于npm軟件包管理器有時(shí)可能不太穩(wěn)定,安裝依賴包容易報(bào)錯(cuò),所以就有了cnpm,這篇文章主要給大家介紹了關(guān)于cnpm安裝的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • node.js使用yargs處理命令行參數(shù)操作示例

    node.js使用yargs處理命令行參數(shù)操作示例

    這篇文章主要介紹了node.js使用yargs處理命令行參數(shù)操作,結(jié)合實(shí)例形式分析了yargs庫(kù)的安裝及node.js使用yargs處理命令行參數(shù)具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

锡林郭勒盟| 咸阳市| 汉中市| 凤冈县| 临汾市| 东乡族自治县| 西昌市| 比如县| 景德镇市| 彰化县| 海淀区| 安溪县| 桂阳县| 阿尔山市| 宁波市| 兴安县| 长垣县| 铁力市| 贵定县| 阜新市| 鄢陵县| 小金县| 泉州市| 宁津县| 安宁市| 吉木乃县| 涟水县| 泰和县| 高安市| 芜湖县| 钟祥市| 修文县| 通化县| 蛟河市| 房山区| 安多县| 织金县| 丰城市| 扎鲁特旗| 黑山县| 通州区|