node+express インスタンスにアップロードされた CSV ファイルを解析するために、node-csv-parser ( http://www.adaltas.com/projects/node-csv/from.html ) を使用しています。「レコード」イベントでエラーが発生した場合、ファイルの解析を停止してエラーをクライアントに返したいのですが、「エラー」イベントが数回呼び出されます (CSV ファイルの各レコードに対して)。
これが私のコードです:
csv()
.from(req.files.file.path)
.on('record', function(data, index){
var date = data[0];
var vehicle = data[1];
var taxId = data[4];
var customer = data[7];
var address = data[8] + ' ' + data[9];
var quantity = data[10]
console.log(date + ' | ' + vechile + ' | ' + taxId + ' | ' + customer + ' | ' + address + ' | ' + quantity);
})
.on('end', function() {
fs.unlinkSync(req.files.file.path);
res.end();
})
.on('error', function(error) {
fs.unlinkSync(req.files.file.path);
console.log('HI');
res.end('error|' + req.files.file.name);
});
上記のように、完全なレコードをコンソールに出力するときに意図的なエラーが発生します。vehicle という変数の型が間違っています (vechile)。次に、'error' イベントが複数回発生し、'HI' がコンソールに数回出力されます。
私が望むのは、最初のエラーが発生したときにファイルの解析を中断して、ファイルを適切に削除し (現在は数回削除され、2 回目は失敗しています)、エラーをクライアントに返すことです。
end() メソッドを使用してみましたが、うまくいきませんでした。
私は正しい軌道に乗っていますか?何かアドバイスはありますか?
前もって感謝します