亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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è)計有所幫助。

相關(guān)文章

  • 完美解決node.js中使用https請求報CERT_UNTRUSTED的問題

    完美解決node.js中使用https請求報CERT_UNTRUSTED的問題

    下面小編就為大家?guī)硪黄昝澜鉀Qnode.js中使用https請求報CERT_UNTRUSTED的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 學(xué)習(xí)Nodejs之fs模塊的使用詳解

    學(xué)習(xí)Nodejs之fs模塊的使用詳解

    這篇文章主要為大家詳細(xì)介紹了Nodejs之fs模塊的使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 使用socket.io實(shí)現(xiàn)簡單聊天室案例

    使用socket.io實(shí)現(xiàn)簡單聊天室案例

    這篇文章主要介紹了使用socket.io實(shí)現(xiàn)簡單聊天室案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 從零學(xué)習(xí)node.js之簡易的網(wǎng)絡(luò)爬蟲(四)

    從零學(xué)習(xí)node.js之簡易的網(wǎng)絡(luò)爬蟲(四)

    簡單的爬蟲實(shí)現(xiàn)原理很簡單:發(fā)送http請求至目標(biāo)地址獲取HTML頁面數(shù)據(jù),然后從獲取來的頁面數(shù)據(jù)中提取需要的數(shù)據(jù)保存。下面這篇文章主要介紹了利用node.js實(shí)現(xiàn)簡易的網(wǎng)絡(luò)爬蟲的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • node.js插件nodeclipse安裝圖文教程

    node.js插件nodeclipse安裝圖文教程

    這篇文章主要為大家分享了node.js插件nodeclipse安裝圖文教程,如何安裝node.js支持插件,下面小編為大家分享具體步驟
    2016-05-05
  • node.js 如何監(jiān)視文件變化

    node.js 如何監(jiān)視文件變化

    這篇文章主要介紹了node.js 如何監(jiān)視文件變化,幫助大家更好的理解和學(xué)習(xí)node.js,感興趣的朋友可以了解下
    2020-09-09
  • Node.js讀取文件內(nèi)容示例

    Node.js讀取文件內(nèi)容示例

    本篇文章主要介紹了Node.js讀取文件內(nèi)容,Node.js讀取文件內(nèi)容包括同步和異步兩種方式。有興趣的可以了解一下。
    2017-03-03
  • 詳解50行代碼,Node爬蟲練手項(xiàng)目

    詳解50行代碼,Node爬蟲練手項(xiàng)目

    這篇文章主要介紹了50行代碼,Node爬蟲練手項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • nodejs解析xml文件方式(xml->json)

    nodejs解析xml文件方式(xml->json)

    這篇文章主要介紹了nodejs解析xml文件方式(xml->json),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • node.js 全局變量的具體使用

    node.js 全局變量的具體使用

    這篇文章主要介紹了node.js 全局變量的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論