21xrx.com
2025-04-07 09:52:48 Monday
文章检索 我的文章 写文章
NodeJS 文件打包下载
2023-07-04 21:08:29 深夜i     9     0
NodeJS 文件打包 下载 文件处理 压缩

NodeJS是JavaScript的一个运行环境,它可以用于服务器端的开发,支持异步I/O等特性,因此在Web开发中备受青睐。

在Web开发中,有时我们需要将多个文件打包并提供下载。在NodeJS中,我们可以通过使用npm包管理器中的“archiver”模块实现这一功能。

首先,我们需要在项目中安装“archiver”模块:

npm install archiver

接下来,我们可以创建一个打包函数:

const archiver = require('archiver');
const fs = require('fs');
function createArchive(filePaths, archivePath) {
 // 创建一个可写的流
 const output = fs.createWriteStream(archivePath);
 const archive = archiver('zip', {
  zlib: { level: 9 } // 压缩等级
 });
 // 将输出流与archiver实例关联
 archive.pipe(output);
 // 向压缩文件中添加文件
 filePaths.forEach((filePath) => {
  archive.file(filePath, { name: filePath });
 });
 // 完成压缩
 archive.finalize();
}

`createArchive`函数接收两个参数:文件路径数组和打包后的文件路径。它使用`archiver`模块创建了一个`zip`类型的压缩文件,并将要打包的文件添加到了压缩文件中。最后,通过调用`finalize()`方法,完成压缩并将压缩文件写入到指定的路径中。

我们可以在项目中调用该函数:

createArchive(['file1.txt', 'file2.txt'], 'archive.zip');

以上代码将`file1.txt`和`file2.txt`文件打包为一个名为`archive.zip`的压缩文件。

在实际应用中,我们可以结合Express等Web框架,在客户端发起请求时调用`createArchive`函数,将指定的文件打包并提供下载。

总的来说,使用NodeJS的`archiver`模块可以方便地实现文件打包下载的功能,为Web开发提供了便利。

  
  

评论区

请求出错了