Node.js中如何创建和提取zip文件?方法介绍
相关推荐:《nodejs 教程》
Zip文件是常用的压缩文件格式。大多数开发人员最终使用tarball而不是zip文件。但在某些情况下,您需要使用zip文件,例如将函数上载到AWS Lambda。在本文中,我将演示如何用 adm-zip npm模块创建和提取zip文件。
创建一个Zip文件
从 adm-zip 的 npm 模块中导出一个 AdmZip
类。 AdmZip
的实例对应于一个zip文件。如果想要创建一个新的 zip 文件,在调用 new AdmZip()
时不应带任何参数:
const AdmZip = require('adm-zip'); const file = new AdmZip();
可以通过多种方式将文件和目录添加到 file
。可以用 file.addLocalFile()
和 file.addLocalFolder()
通过文件名从文件系统添加文件和目录。例如下面的代码演示了怎样把 package.json
文件和 node_modules
目录添加到 zip 文件中:
const AdmZip = require('adm-zip'); const file = new AdmZip(); file.addLocalFile('./package.json'); //第二个node_modules 参数是 zip 中目录的路径。 //如果没有第二个参数,则`./node_modules`中的每个目录都将是压缩文件中的顶级目录 file.addLocalFolder('./node_modules', 'node_modules');
然后,你可以使用下面两种方法中的一个写入文件:
//写入zip文件的第一种方法:将其转换为缓冲区并使用`fs` const fs = require('fs'); fs.writeFileSync('output.zip', file.toBuffer()); // 另一种写入 zip 文件的方法:writeZip() file.writeZip('output.zip');
写入output.zip
文件后,你应该能够在制定的 zip 解压缩程序中打开它。下面是在 Xubuntu 的默认存档管理器 engrampa 中打开的文件。
addLocalFile()
和 addLocalFolder()
的第二个参数是将文件或目录内容放入zip的路径。例如,如果要将 package.json
和 node_modules
都放在 project
目录下,则可以运行以下脚本:
const AdmZip = require('adm-zip'); const file = new AdmZip(); file.addLocalFile('./package.json', 'project'); file.addLocalFolder('./node_modules', 'project/node_modules'); const fs = require('fs'); fs.writeFileSync('output.zip', file.toBuffer());
可以用 file.addFile()
方法从原始 Node.js 缓冲区添加文件。以下是不在文件系统上创建文件的情况下,将包含字符串 Hello,World
的文本文件添加到 zip 文件中的方法。
const AdmZip = require('adm-zip'); const file = new AdmZip(); file.addFile('hello.txt', Buffer.fromString('Hello, World')); const fs = require('fs'); fs.writeFileSync('output.zip', file.toBuffer());
使用现有文件
如果你将参数传递给 AdmZip
构造函数,则adm-zip将在给定路径下解析文件。下面是将所有内容从 output.zip
文件提取到目录 output
的方法。
const AdmZip = require('adm-zip'); const file = new AdmZip('./output.zip'); file.extractAllTo('./output');
也可以用 file.extractEntryTo()
从 zip 文件中提取单个文件。例如,下面是从 zip 文件中拉出 hello.txt
文件并将其写入当前目录的方法:
const AdmZip = require('adm-zip'); const file = new AdmZip('./output.zip'); file.extractEntryTo('hello.txt', './');
你也可以对现有文件使用 addLocalFile()
,addLocalFolder()
和 addFile()
。
总结
zip 文件通常用于压缩。某些服务(例如AWS Lambda)要求你使用 zip 文件。幸运的是,adm-zip npm 模块使直接从 Node.js 创建和提取 zip 文件变得容易。
英文原文地址:http://thecodebarbarian.com/working-with-zip-files-in-node-js.html
作者:Valeri Karpov
更多编程相关知识,请访问:编程视频!!
Atas ialah kandungan terperinci Node.js中如何创建和提取zip文件?方法介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perkhidmatan Node yang dibina berdasarkan bukan sekatan dan dipacu peristiwa mempunyai kelebihan penggunaan memori yang rendah dan sangat sesuai untuk mengendalikan permintaan rangkaian besar-besaran. Di bawah premis permintaan besar-besaran, isu yang berkaitan dengan "kawalan memori" perlu dipertimbangkan. 1. Mekanisme kutipan sampah V8 dan had ingatan Js dikawal oleh mesin kutipan sampah

Artikel ini akan memberi anda pemahaman yang mendalam tentang memori dan pengumpul sampah (GC) enjin NodeJS V8 saya harap ia akan membantu anda!

Memilih imej Docker untuk Node mungkin kelihatan seperti perkara remeh, tetapi saiz dan potensi kelemahan imej itu boleh memberi kesan yang ketara pada proses dan keselamatan CI/CD anda. Jadi bagaimana kita memilih imej Node.js Docker yang terbaik?

Modul fail ialah enkapsulasi operasi fail asas, seperti membaca/menulis/membuka/menutup/memadam fail, dsb. Ciri terbesar modul fail ialah semua kaedah menyediakan dua versi **segerak** dan ** asynchronous**, dengan Kaedah dengan akhiran penyegerakan adalah semua kaedah penyegerakan, dan kaedah yang tidak semuanya adalah kaedah heterogen.

Node 19 telah dikeluarkan secara rasmi Artikel ini akan memberi anda penjelasan terperinci tentang 6 ciri utama Node.js 19. Saya harap ia akan membantu anda!

Bagaimanakah Node.js melakukan GC (pengumpulan sampah)? Artikel berikut akan membawa anda melaluinya.

Gelung peristiwa ialah bahagian asas Node.js dan mendayakan pengaturcaraan tak segerak dengan memastikan bahawa utas utama tidak disekat Memahami gelung peristiwa adalah penting untuk membina aplikasi yang cekap. Artikel berikut akan memberi anda pemahaman yang mendalam tentang gelung acara dalam Node.

Sebab mengapa nod tidak boleh menggunakan arahan npm adalah kerana pembolehubah persekitaran tidak dikonfigurasikan dengan betul Penyelesaiannya ialah: 1. Buka "Sistem Sifat"; 2. Cari "Pembolehubah Persekitaran" -> "Pembolehubah Sistem", dan kemudian edit persekitaran. pembolehubah; 3. Cari lokasi folder nodejs;
