2

node.jsを少しいじるために、次のようにしました。フォルダー zipfiles 内のファイルはそれに応じて圧縮され、すべてが機能しているようです。しかし、cmd でエラーが発生しました。エラーの原因や解決方法がわかりません。

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: write after end
    at writeAfterEnd (_stream_writable.js:130:12)
    at Gzip.Writable.write (_stream_writable.js:178:5)
    at write (_stream_readable.js:583:24)
    at flow (_stream_readable.js:592:7)
    at ReadStream.pipeOnReadable (_stream_readable.js:624:5)
    at ReadStream.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at emitReadable (_stream_readable.js:404:5)
    at readableAddChunk (_stream_readable.js:165:9)
    at ReadStream.Readable.push (_stream_readable.js:127:10)

これが私のスクリプトです:

var zlib = require('zlib');
var gzip = zlib.createGzip();
var fs = require('fs');
var zip = {
    zipAll: function(dir){  
        //files to zip
        fs.readdir(dir, function(err, data){
            if(err) throw(err);
            var arrayValue = data.toString().split(',');

            //files with .gz at the end, needs to be excluded
                for(var i=0; i<arrayValue.length; i+=1){
                    console.log("Zipping following files: " + arrayValue[i]);
                    var input = fs.createReadStream('zipfiles/' + arrayValue[i]);
                    var output = fs.createWriteStream('zipfiles/input'+[i]+'.txt'+'.gz');
                    input.pipe(gzip).pipe(output);                  
                } 
        });
    }
};
zip.zipAll('zipfiles');

ありがとう

4

1 に答える 1