Javascript 如何从NodeJS服务器下载zip文件夹

Javascript 如何从NodeJS服务器下载zip文件夹,javascript,node.js,download,Javascript,Node.js,Download,我有一个文件夹内的文件,我想下载的文件夹形式节点js服务器。我尝试了一些代码,但不起作用。我得到了一些关于下载(,)文件夹的例子,但它们对我不起作用,或者我不理解它们 I have folder like: Allfilefolder -file1.js - file2.js -file3.js 我可以使用以下方式下载每个文件: app.get("/files/downloads", function(req,res){ c

我有一个文件夹内的文件,我想下载的文件夹形式节点js服务器。我尝试了一些代码,但不起作用。我得到了一些关于下载(,)文件夹的例子,但它们对我不起作用,或者我不理解它们

I have folder like:
    Allfilefolder
        -file1.js
        - file2.js
        -file3.js
我可以使用以下方式下载每个文件:

app.get("/files/downloads", function(req,res){ 
      const fs = require('fs');
    var filepath = './Allfilefolder/file1.js'; 
    res.download(filepath ); 
});

但是我不知道如何下载这个文件夹。有什么帮助吗?

假设您已经安装了一个zip软件,并且可以从应用程序访问该软件,一种方法是使用Node.js child\u进程,这样您甚至不必使用外部库

以下是一个基本示例,其灵感来源于简洁有效的答案:

// requiring child_process native module
const child_process = require('child_process');

const folderpath = './Allfilefolder';

app.get("/files/downloads", (req, res) => {

  // we want to use a sync exec to prevent returning response
  // before the end of the compression process
  child_process.execSync(`zip -r archive *`, {
    cwd: folderpath
  });

  // zip archive of your folder is ready to download
  res.download(folderpath + '/archive.zip');
});

您还可以查看npm,以找到更可靠地处理归档文件或目录的软件包。

假设您已经安装了zip软件,并且可以从应用程序访问该软件,一种方法是使用Node.js child_进程,这样您甚至不必使用外部库

以下是一个基本示例,其灵感来源于简洁有效的答案:

// requiring child_process native module
const child_process = require('child_process');

const folderpath = './Allfilefolder';

app.get("/files/downloads", (req, res) => {

  // we want to use a sync exec to prevent returning response
  // before the end of the compression process
  child_process.execSync(`zip -r archive *`, {
    cwd: folderpath
  });

  // zip archive of your folder is ready to download
  res.download(folderpath + '/archive.zip');
});

您还可以查看npm,以找到更可靠地处理归档文件或目录的包。

您还没有压缩任何文件,是吗?@TGrif是的,我还没有压缩文件夹。我只想从节点服务器下载文件夹。为此,我想我应该先把拉链拉上。但我还不知道怎么做。我找了很多次,但都找不到有用的东西。如果您以前做过类似的事情,您能帮我吗。@TGrif您没有解决方案吗?您还没有压缩任何文件,是吗?@TGrif是的,我还没有压缩文件夹。我只想从节点服务器下载文件夹。为此,我想我应该先把拉链拉上。但我还不知道怎么做。我找了很多次,但都找不到有用的东西。如果你以前做过类似的事情,你能帮我吗?@TGrif如果你没有解决办法的话?