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

node.js實(shí)現(xiàn)簡單的壓縮/解壓縮功能示例

 更新時間:2019年11月05日 09:20:04   作者:蒼青浪  
這篇文章主要介紹了node.js實(shí)現(xiàn)簡單的壓縮/解壓縮功能,結(jié)合實(shí)例形式分析了node.js實(shí)現(xiàn)本地文件與服務(wù)器端壓縮/解壓縮相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了node.js實(shí)現(xiàn)簡單的壓縮/解壓縮功能。分享給大家供大家參考,具體如下:

壓縮的例子

非常簡單的幾行代碼,就完成了本地文件的gzip壓縮。

var fs = require('fs');
var zlib = require('zlib');
var gzip = zlib.createGzip();
var inFile = fs.createReadStream('./extra/fileForCompress.txt');
var out = fs.createWriteStream('./extra/fileForCompress.txt.gz');
inFile.pipe(gzip).pipe(out);

解壓的例子

同樣非常簡單,就是個反向操作。

var fs = require('fs');
var zlib = require('zlib');
var gunzip = zlib.createGunzip();
var inFile = fs.createReadStream('./extra/fileForCompress.txt.gz');
var outFile = fs.createWriteStream('./extra/fileForCompress1.txt');
inFile.pipe(gunzip).pipe(outFile);

服務(wù)端gzip壓縮

代碼超級簡單。首先判斷 是否包含 accept-encoding 首部,且值為gzip。

  • 否:返回未壓縮的文件。
  • 是:返回gzip壓縮后的文件。
var http = require('http');
var zlib = require('zlib');
var fs = require('fs');
var filepath = './extra/fileForGzip.html';
var server = http.createServer(function(req, res){
  var acceptEncoding = req.headers['accept-encoding'];
  var gzip;
  if(acceptEncoding.indexOf('gzip')!=-1){ // 判斷是否需要gzip壓縮
    gzip = zlib.createGzip();
    // 記得響應(yīng) Content-Encoding,告訴瀏覽器:文件被 gzip 壓縮過
    res.writeHead(200, {
      'Content-Encoding': 'gzip'
    });
    fs.createReadStream(filepath).pipe(gzip).pipe(res);
  }else{
    fs.createReadStream(filepath).pipe(res);
  }
});
server.listen('3000');

服務(wù)端字符串gzip壓縮

代碼跟前面例子大同小異。這里采用了**slib.gzipSync(str)**對字符串進(jìn)行g(shù)zip壓縮。

var http = require('http');
var zlib = require('zlib');
var responseText = 'hello world';
var server = http.createServer(function(req, res){
  var acceptEncoding = req.headers['accept-encoding'];
  if(acceptEncoding.indexOf('gzip')!=-1){
    res.writeHead(200, {
      'content-encoding': 'gzip'
    });
    res.end( zlib.gzipSync(responseText) );
  }else{
    res.end(responseText);
  }
});
server.listen('3000');

寫在后面

deflate壓縮的使用也差不多,這里就不贅述。更多詳細(xì)用法可參考官方文檔

希望本文所述對大家node.js程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • node.js實(shí)現(xiàn)websocket的即時通訊詳解

    node.js實(shí)現(xiàn)websocket的即時通訊詳解

    這篇文章主要介紹了深入淺出講解websocket的即時通訊,服務(wù)器可以主動向客戶端推送信息,客戶端也可以主動向服務(wù)器發(fā)送信息,是真正的雙向平等對話,屬于服務(wù)器推送技術(shù)的一種,需要的朋友可以參考下
    2023-05-05
  • 利用npm 安裝刪除模塊的方法

    利用npm 安裝刪除模塊的方法

    今天小編就為大家分享一篇利用npm 安裝刪除模塊的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Nodejs實(shí)現(xiàn)爬蟲抓取數(shù)據(jù)實(shí)例解析

    Nodejs實(shí)現(xiàn)爬蟲抓取數(shù)據(jù)實(shí)例解析

    這篇文章主要介紹了Nodejs實(shí)現(xiàn)爬蟲抓取數(shù)據(jù)實(shí)例解析,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-07-07
  • 使用nodejs連接mySQL寫接口全過程(增刪改查)

    使用nodejs連接mySQL寫接口全過程(增刪改查)

    這篇文章主要給大家介紹了關(guān)于使用nodejs連接mySQL寫接口(增刪改查)的相關(guān)資料,MySQL是一種常用的關(guān)系型數(shù)據(jù)庫,它與Node.js的結(jié)合可以提供強(qiáng)大的數(shù)據(jù)存儲和檢索功能,需要的朋友可以參考下
    2023-12-12
  • 詳解基于electron制作一個node壓縮圖片的桌面應(yīng)用

    詳解基于electron制作一個node壓縮圖片的桌面應(yīng)用

    這篇文章主要介紹了詳解基于electron制作一個node壓縮圖片的桌面應(yīng)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 淺析Node.js中的內(nèi)存泄漏問題

    淺析Node.js中的內(nèi)存泄漏問題

    這篇文章主要介紹了淺析Node.js中的內(nèi)存泄漏問題,Node.js是使JavaScript應(yīng)用在服務(wù)器端運(yùn)行的一款框架,需要的朋友可以參考下
    2015-06-06
  • 淺談Node.js:理解stream

    淺談Node.js:理解stream

    本篇文章主要介紹了Node.js:stream,Stream在node.js中是一個抽象的接口,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-12-12
  • Node.js如何通過http調(diào)用外部接口

    Node.js如何通過http調(diào)用外部接口

    這篇文章主要介紹了Node.js如何通過http調(diào)用外部接口問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Node.js利用Express實(shí)現(xiàn)用戶注冊登陸功能(推薦)

    Node.js利用Express實(shí)現(xiàn)用戶注冊登陸功能(推薦)

    這篇文章主要介紹了Node.js利用Express實(shí)現(xiàn)用戶注冊登陸功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • NodeJs內(nèi)置模塊超詳細(xì)講解

    NodeJs內(nèi)置模塊超詳細(xì)講解

    Node.js內(nèi)置模塊也叫核心模塊,跟隨Node.js一起安裝。console模塊提供了一個簡單的調(diào)試控制臺,類似于網(wǎng)絡(luò)瀏覽器提供的?JavaScript控制臺機(jī)制
    2023-01-01

最新評論

星子县| 亚东县| 台湾省| 襄城县| 江油市| 定陶县| 荥阳市| 凤阳县| 图们市| 泰顺县| 上高县| 乐平市| 桐庐县| 土默特左旗| 大埔区| 永登县| 万源市| 泸定县| 宁陵县| 东光县| 东源县| 涟水县| 广灵县| 东城区| 海南省| 信丰县| 高雄县| 建水县| 石狮市| 永宁县| 黄梅县| 吐鲁番市| 合江县| 鄂托克旗| 湘阴县| 深泽县| 平和县| 新田县| 甘肃省| 兴隆县| 宁国市|