javascript - JSZip 循环?

标签 javascript node.js loops jszip

是否可以使用 JSZip 在循环中创建真正的 zip 文件夹和文件,每个元素一个?如果是这样,怎么办?

类似这样的事情:

var JSZip = require("jszip");
const saveAs = require('file-saver');
var fs = require("fs");

for(i = 0; i > 5; i++){
    var zip = new JSZip();
    zip.folder(i).file(i+".txt", i);

    zip
    .generateNodeStream({type:'nodebuffer',streamFiles:true})
    .pipe(fs.createWriteStream('Zipped Projects.zip'))
    .on('finish', function () {
        console.log("Zipped Projects.zip written.");
    })
}

在循环之外,将在当前目录中创建一个包含预期内容的实际 zi​​p 文件夹。在循环内部,什么也没有发生,甚至日志也没有发生。

最佳答案

如果我正确理解你的问题,那么这个问题是由每次循环迭代创建新的 zip 对象引起的。

也许您可以考虑进行以下调整来解决此问题:

var JSZip = require("jszip");
const saveAs = require('file-saver');
var fs = require("fs");

// Create the single zip object that will be populated
// during the for loop
var zip = new JSZip();

// Populate the zip object with text files per iteration.
// Make sure you update the loop logic to use "i < 5"
for(var i = 0; i < 5; i++){
    zip.folder(i).file(i+".txt", i);
}

// Now that the zip object has been populated, write it to
// disk
zip
.generateNodeStream({type:'nodebuffer',streamFiles:true})
.pipe(fs.createWriteStream('Zipped Projects.zip'))
.on('finish', function () {
    console.log("Zipped Projects.zip written.");
})

希望这有帮助!

关于javascript - JSZip 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146156/

相关文章:

javascript - JSON.parse reviver函数嵌套对象

node.js - 邮戳模板 : dynamic variable with html processed as text instead of html

php - 循环期间数据不会进入数据库

php - javascript在php循环中引用输入ID并将值传回相同的输入ID

javascript - phantom - 无法将循环与 page.evaluate 一起使用

java - 循环/数组 (Java)

javascript - 为什么在指定 YUI 模块时需要 YUI.add,如果需要,非 YUI 模块如何工作?

javascript - 搜索表单不提交

javascript - 选择列表不保留所选值

node.js - 如何检查 Mongoose 模型中的字段是否设置为 true