真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出紅塔免費(fèi)做網(wǎng)站回饋大家。

壓縮的例子

非常簡(jiǎ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);

解壓的例子

同樣非常簡(jiǎn)單,就是個(gè)反向操作。

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壓縮

代碼超級(jí)簡(jiǎn)單。首先判斷 是否包含 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 壓縮過(guò)
    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)**對(duì)字符串進(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');

寫(xiě)在后面

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

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


文章題目:node.js實(shí)現(xiàn)簡(jiǎn)單的壓縮/解壓縮功能示例
網(wǎng)頁(yè)URL:http://weahome.cn/article/gdjsjc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部