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

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

nodejs中archiver如何用

本篇內(nèi)容介紹了“nodejs中archiver如何用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

興賓網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

在nodejs中,archiver用于將一些文件壓縮打包成zip格式或tar格式的壓縮包;archiver是一個(gè)能跨平臺(tái)實(shí)現(xiàn)打包功能的模塊,打包的格式是zip和tar,可以利用“npm install archiver”語(yǔ)句在使用前安裝該模塊。

本文操作環(huán)境:Windows10系統(tǒng)、nodejs 12.19.0版、Dell G3電腦。

nodejs中archiver使用方法

有時(shí)候我們需要將一些文件壓縮打包成zip格式或tar格式的壓縮包,也有可能需要將目錄進(jìn)行打包。在Node.js中就可以用到archiver這個(gè)第三方包來(lái)進(jìn)行操作。

archiver是一個(gè)在nodejs中能跨平臺(tái)實(shí)現(xiàn)打包功能的模塊,可以打zip和tar包,是一個(gè)比較好用的三方模塊。

使用前先安裝archiver模塊。

代碼如下:

npm install archiver

引入:

// 由于需要讀取文件所以需要fs模塊,也必須導(dǎo)入
const fs = require('fs');
const archiver = require('archiver');

使用

基本使用如下:

// 第一步,導(dǎo)入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創(chuàng)建可寫(xiě)流來(lái)寫(xiě)入數(shù)據(jù)
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當(dāng)前項(xiàng)目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設(shè)置壓縮等級(jí)

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮指定文件
var stream = fs.createReadStream(__dirname + "/hello.txt");// 讀取當(dāng)前目錄下的hello.txt
archive.append(stream, {name: 'hello.txt'});

// 第五步,完成壓縮
archive.finalize();

執(zhí)行代碼成功后,就會(huì)在項(xiàng)目的所在目錄下生成一個(gè)名為hello.zip壓縮包,該壓縮包內(nèi)就是壓縮的文件hello.txt。
nodejs中archiver如何用

實(shí)例

壓縮單個(gè)文件

壓縮文件可以使用archive.append()archive.file()來(lái)進(jìn)行操作。

壓縮單個(gè)文件的API如下:

// 添加一個(gè)文件到壓縮包,通過(guò)可寫(xiě)流的方式讀取數(shù)據(jù)附加文件
const file1 = __dirname + '/file1.txt';
archive.append(fs.createReadStream(file1), { name: 'file1.txt' });

//添加一個(gè)文件到壓縮包,通過(guò)將字符串寫(xiě)入到文件的方式附加文件
archive.append('string cheese!', { name: 'file2.txt' });

// 添加一個(gè)文件到壓縮包,通過(guò)Buffer數(shù)據(jù)的方式附加文件
const buffer3 = Buffer.from('buff it!');
archive.append(buffer3, { name: 'file3.txt' });

// 添加一個(gè)文件到壓縮包,直接傳入文件路徑
archive.file('file1.txt', { name: 'file4.txt' });

完整的例子如下:

// 第一步,導(dǎo)入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創(chuàng)建可寫(xiě)流來(lái)寫(xiě)入數(shù)據(jù)
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當(dāng)前項(xiàng)目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設(shè)置壓縮等級(jí)

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮指定文件
archive.append(fs.createReadStream(__dirname + '/hello.txt'), {name: 'hello.txt'});// 文件流
archive.append('index.html', {name: 'index.html'});// 文件路徑
archive.append(Buffer.from("這是Buffer格式的數(shù)據(jù)"), {name: 'buffer.txt'});// Buffer對(duì)象
archive.append("直接傳入字符串", {name: 'string.txt'});// 字符串

// 第五步,完成壓縮
archive.finalize();

nodejs中archiver如何用
注意:archive.append()第二個(gè)參數(shù){name: 'hello.txt'}是對(duì)壓縮包中對(duì)應(yīng)的文件進(jìn)行重命名。

壓縮多個(gè)文件

如果要壓縮多個(gè)文件,直接調(diào)用archive.append()方法附加文件即可,這些附加的文件都會(huì)被添加到壓縮包中。如例:

// 第一步,導(dǎo)入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創(chuàng)建可寫(xiě)流來(lái)寫(xiě)入數(shù)據(jù)
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當(dāng)前項(xiàng)目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設(shè)置壓縮等級(jí)

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮多個(gè)文件到壓縮包中
archive.append('index.html', {name: 'index.html'});
archive.append('hello.js', {name: 'hello.js'});
archive.append('hello.html', {name: 'hello.html'});
archive.append('db.json', {name: 'db.json'});

// 第五步,完成壓縮
archive.finalize();

nodejs中archiver如何用

壓縮目錄

如果要壓縮目錄,則需要使用archive.directory()來(lái)完成。API如下:

// 將指定目錄打包壓縮到壓縮包中,并且重命名為new-subdir,并且subdir目錄下的所有文件仍然在new-subdir目錄下,而不是在壓縮包的根目錄下
archive.directory('subdir/', 'new-subdir');

// 將指定目錄下的所有文件打包壓縮到壓縮包中,而這些文件在壓縮包的根目錄,而非子目錄中
archive.directory('subdir/', false);

完整實(shí)例如下:

// 第一步,導(dǎo)入必要的模塊
const fs = require('fs');
const archiver = require('archiver');

// 第二步,創(chuàng)建可寫(xiě)流來(lái)寫(xiě)入數(shù)據(jù)
const output = fs.createWriteStream(__dirname + "/hello.zip");// 將壓縮包保存到當(dāng)前項(xiàng)目的目錄下,并且壓縮包名為test.zip
const archive = archiver('zip', {zlib: {level: 9}});// 設(shè)置壓縮等級(jí)

// 第三步,建立管道連接
archive.pipe(output);

// 第四步,壓縮目錄到壓縮包中
archive.directory('public/', 'new-public');
archive.directory('demo/', false);

// 第五步,完成壓縮
archive.finalize();

nodejs中archiver如何用

“nodejs中archiver如何用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


網(wǎng)頁(yè)標(biāo)題:nodejs中archiver如何用
文章鏈接:http://weahome.cn/article/ghsgci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部