Node.js archiver的行为不清楚

Node.js archiver的行为不清楚,node.js,zip,Node.js,Zip,我使用下面的代码压缩一个只包含.txt文件的整个文件夹,并将其作为.zip文件发送到客户端 var time = new Date().getTime(); var userId = parseInt(req.params.userId); console.log("User ID: "+userId); var output = fs.createWriteStream('user_archive/temp-'+userId+'.zip'); var arch = archiver('zip'

我使用下面的代码压缩一个只包含.txt文件的整个文件夹,并将其作为.zip文件发送到客户端

var time = new Date().getTime();
var userId = parseInt(req.params.userId);
console.log("User ID: "+userId);
var output = fs.createWriteStream('user_archive/temp-'+userId+'.zip');
var arch = archiver('zip');

output.on('close', function () {
    console.log(arch.pointer() + ' total bytes\n\r__');

    res.header('Content-disposition', 'attachment; filename=archive-'+time+'.zip');
    res.header('Content-type', 'application/octet-stream');
    var filestream = fs.createReadStream('user_archive/temp-'+userId+'.zip');
    filestream.pipe(res);

});

arch.on('error', function(err){
    throw err;
});

arch.pipe(output);
arch.bulk([
    { expand: true, cwd: 'user_archive/temp-'+userId+'/', src: ['*.txt'], dest: 'messages-'+time}
]).finalize();
我面临的问题是,在测试这段代码和
console.log(arch.pointer()+'total bytes\n\r\n')时,我没有收到相同数量的字节
为我提供了从22个字节(对应于不正确的存档)到正确字节数的值。另一件需要提及的事情是,在连续5-6次测试之后,我会收到一个正确的存档,直到我停止并重新启动节点。然后又发生了:5个不正确的归档,然后是正确的归档。我的问题:为什么会有这种不清楚的行为