2017-05-17 9 views
1

配管ながら「配管」は、ノード内のファイル間、私はこのエラーがあります:のNode.js:エラーECONNRESETファイル

events.js:160 
    throw er; // Unhandled 'error' event 
^
Error: read ECONNRESET 
at exports._errnoException (util.js:1022:11) 
at Pipe.onread (net.js:569:26) 

ここでは私のコードです:

var json_file = fs.createWriteStream(jsonFile), 
    processes = 0, 
    read_ended_flag = false, 
    converter = new Converter(params); 

let read_csv_file = fs.createReadStream(csvFilePath); 

// For each csv line, we get a json doc 
converter.on('record_parsed', jsonObj => { 
    processes++; 

    json_file.write(JSON.stringify(jsonObj) + '\n',() => { 
     processes--; 

     if(read_ended_flag && processes == 0){ 
      json_file.end(); 
      callback(); 
     } 
    }); 
}); 

converter.on('end_parsed',() => { 
    read_ended_flag = true; 
}); 

read_csv_file 
    .pipe(converter); 

私は、エラーをキャッチしようとしましたthisまたはthisを使用しますが、それでも同じです。 このバグは、小さなファイル(> 100行)での作業中にのみ発生します。

新しいファイルに書き込む前に読み取りストリームが閉じられているからですか?

アドバイスありがとうございました&

答えて

1

解決策が見つかりました! :)

私のコンバータのパラメータ(csvtojsonモジュール)のため、私はworkerNumを4にしました。代わりに、小さなファイルを扱うために1を置く必要があります。

workerNum:ワーカープロセスの数。ワーカープロセスは、マルチコアを使用してCSVデータを処理します。大きなcsvファイルの処理のパフォーマンスを向上させるために、コアの数に設定します。小さなcsvファイルの場合は1を保持します。デフォルト1.

Hereはcsvtojsonモジュールに関する完全なチュートリアル

が、それは他の人の役に立てば幸いです!

+1

あなたは私がどれくらい時間を節約したかは信じられません。百万の感謝 –

関連する問題