node.js使用zlib模塊進行數(shù)據(jù)壓縮和解壓操作示例
本文實例講述了node.js使用zlib模塊進行數(shù)據(jù)壓縮和解壓操作。分享給大家供大家參考,具體如下:
我們可以使用 zlib 模塊來對數(shù)據(jù)進行壓縮和解壓處理,減小數(shù)據(jù)體積,加快傳輸速度。
一、通過創(chuàng)建轉(zhuǎ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)建一個gzip轉(zhuǎn)換流,是一個可讀可寫流。 //通過管道將數(shù)據(jù)讀取出來寫入gzip流,然后又通過管道寫入一個文件流中 $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)建一個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 方法對數(shù)據(jù)進行壓縮與解壓
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()); //對buffer數(shù)據(jù)進行解壓 zlib.unzip(buffer, function (err, buffer) { console.log(buffer.toString()); }); });
希望本文所述對大家node.js程序設(shè)計有所幫助。
相關(guān)文章
詳解NodeJs項目 CentOs linux服務(wù)器線上部署
這篇文章主要介紹了NodeJs項目 CentOs linux服務(wù)器線上部署,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09node終端里如何連接mysql數(shù)據(jù)庫并進行sql查詢
這篇文章主要為大家介紹了node終端里如何連接mysql數(shù)據(jù)庫并進行sql查詢,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07nodejs服務(wù)內(nèi)存泄露排查過程和優(yōu)化方法
在開發(fā)和部署Node.js應(yīng)用程序時,內(nèi)存泄露是一個常見的挑戰(zhàn),本文將探討如何對于一個陌生項目進行內(nèi)存排查和優(yōu)化的方法,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11