Как скачать zip-папку с узла js server - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть файлы в одной папке, и я хочу скачать 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 ); 
});

Но я не знаю, как загрузить папку.любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 28 сентября 2018

Если у вас уже установлено и доступно приложение zip из вашего приложения, один из способов сделать это - использовать Node.js child_process , таким образом вам даже не нужно использовать внешнюю библиотеку.

Вот базовый пример, вдохновленный этим кратким и эффективным ответом:

// 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 для пакетов, которые будут обрабатывать файл или каталог архивирования более надежно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...