node.js使用zlib模塊進(jìn)行數(shù)據(jù)壓縮和解壓操作示例
本文實(shí)例講述了node.js使用zlib模塊進(jìn)行數(shù)據(jù)壓縮和解壓操作。分享給大家供大家參考,具體如下:
我們可以使用 zlib 模塊來(lái)對(duì)數(shù)據(jù)進(jìn)行壓縮和解壓處理,減小數(shù)據(jù)體積,加快傳輸速度。
一、通過(guò)創(chuàng)建轉(zhuǎn)換流,對(duì)文件進(jìn)行壓縮和解壓
const fs = require('fs'); const zlib = require('zlib'); const path = require('path'); function gzip($src) { fs.stat($src, function (err, stats) { if (stats.isFile()) { let rs = fs.createReadStream($src); //zlib.createGzip()創(chuàng)建一個(gè)gzip轉(zhuǎn)換流,是一個(gè)可讀可寫流。 //通過(guò)管道將數(shù)據(jù)讀取出來(lái)寫入gzip流,然后又通過(guò)管道寫入一個(gè)文件流中 $dst = path.join(__dirname, path.basename($src) + '.gz'); rs.pipe(zlib.createGzip()).pipe(fs.createWriteStream($dst)); } }); } function ungzip($src) { fs.stat($src, function (err, stats) { if (stats.isFile()) { let rs = fs.createReadStream($src); //zlib.createGunzip()創(chuàng)建一個(gè)gunzip轉(zhuǎn)換流 $dst = path.join(__dirname, path.basename($src, '.gz')); rs.pipe(zlib.createGunzip()).pipe(fs.createWriteStream($dst)); } }); } //壓縮文件 gzip('./1.txt'); //解壓文件 ungzip('./1.txt.gz');
zlib.createDeflate() 和 zlib.createInflate() 的使用方法與上面類似,這里就不作演示了。
二、調(diào)用 zlib 方法對(duì)數(shù)據(jù)進(jìn)行壓縮與解壓
const zlib = require('zlib'); let data = 'hello,world'; //參數(shù)一表示要壓縮的數(shù)據(jù),可以是string或buffer zlib.gzip(data, function (err, buffer) { if (err) { console.log(err); } //buffer就是壓縮后的數(shù)據(jù) console.log(buffer.toString()); //對(duì)buffer數(shù)據(jù)進(jìn)行解壓 zlib.unzip(buffer, function (err, buffer) { console.log(buffer.toString()); }); });
希望本文所述對(duì)大家node.js程序設(shè)計(jì)有所幫助。
相關(guān)文章
NodeJs生成sitemap站點(diǎn)地圖的方法示例
這篇文章主要介紹了NodeJs生成sitemap站點(diǎn)地圖的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06詳解NodeJs項(xiàng)目 CentOs linux服務(wù)器線上部署
這篇文章主要介紹了NodeJs項(xiàng)目 CentOs linux服務(wù)器線上部署,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09node終端里如何連接mysql數(shù)據(jù)庫(kù)并進(jìn)行sql查詢
這篇文章主要為大家介紹了node終端里如何連接mysql數(shù)據(jù)庫(kù)并進(jìn)行sql查詢,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07利用node.js如何創(chuàng)建子進(jìn)程詳解
之前看多進(jìn)程這一章節(jié)時(shí)發(fā)現(xiàn)這塊東西挺多,寫Process模塊的時(shí)候也有提到,今天下午午休醒來(lái)靜下心來(lái)好好的看了一遍,發(fā)現(xiàn)也不是太難理解。所以下面這篇文章主要給大家介紹了關(guān)于利用node.js如何創(chuàng)建子進(jìn)程的相關(guān)資料,需要的朋友可以參考下。2017-12-12nodejs服務(wù)內(nèi)存泄露排查過(guò)程和優(yōu)化方法
在開發(fā)和部署Node.js應(yīng)用程序時(shí),內(nèi)存泄露是一個(gè)常見的挑戰(zhàn),本文將探討如何對(duì)于一個(gè)陌生項(xiàng)目進(jìn)行內(nèi)存排查和優(yōu)化的方法,文章通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11