停止读取fast-csv节点模块的流

时间:2016-08-04 12:05:32

标签: node.js csv

如何使用fast-csv节点模块停止在某个特定索引处读取csv行?在fast-csv中,它们是流暂停和恢复的选项,但没有选项可以在某个特定行关闭流。 以下是代码:

<View style={{height: 3, alignSelf: 'stretch', backgroundColor: '#dddddd'}}/>

在上面的代码中我怎么能跳到&#34;结束&#34;阻止在某行中发生错误?

1 个答案:

答案 0 :(得分:0)

没有很好的方法来结束流。您可以将FileCleanFlag定义为true,然后如果它的错误不再起作用。

var FileCleanFlag = true;
var csvstream = CSV
.fromPath(self.fetchFilePath(fileName),{ ltrim : true, rtrim : true , headers : true , ignoreEmpty : true })
.transform(function (data){
Object.keys(data).forEach(function (key) {
   var newKey       = key.trim();
   data[newKey]     = data[key].trim();
});
    return data;
})
.on("data", function(data){
     if (!FileCleanFlag) { return; }
     //checking unicode char presence
     Object.keys(data).forEach(function (key) {
     if(data[key]){
      var charValue   = PUNYCODE.ucs2.decode(data[key]);
      charValue = charValue.map(function(val) {
         if(val>126){
           FileCleanFlag=false;
           errorData.push(data);
         }
      });
   }else{
      FileCleanFlag=false;
   }
 });

 if(!FileCleanFlag){
    #here want to jump to end block instead of parsing next rows
 }
})
.on('end', function (){
   #some work on rows containing error
});

如果您需要沿着这条路线行进,请参阅How to close a readable stream (before end)?了解如何关闭流黑客。

此外,您可能会抛出错误并相应地捕获它。