Node.js归档程序的行为不明确

时间:2015-06-05 11:59:12

标签: 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');

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__');给出了22个字节的值,这些字节对应于错误的存档,正确的数字的字节数。另外要提一下,经过5-6次连续测试后,我收到了正确的存档,直到我停止并重新启动节点。然后再次发生:5个不正确的档案,然后是正确的档案。我的问题:为什么这种行为不明确?

0 个答案:

没有答案