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