2014-11-17 1 views
1

fast-csv를 사용하여 데이터의 유효성을 검사하려고합니다. 내 코드fast-csv가 예외를 throw하고 있습니다 : 열 머리글이 일치하지 않습니다.

var fileName = req.files.uploadcsv.path; 
var fs = require("fs"); 

var stream = fs.createReadStream(fileName); 

var csv = require("fast-csv"); 

csv 
    .fromStream(stream, { 
     headers: true 
    }) 
    .validate(function(data) { 
      if (data.age > 18) 
       return false; 
      else 
       return true; 

     } 

    } 

그것은 내가 업로드 된 모든 파일에 대해 잘 작동처럼 보이지만 추가 데이터 파일을 업로드하는 경우, 그것은 오류를 말한다 : 예기치 않은 오류 : 열 헤더 불일치가 예상 : 5 열이있어 : 6 실제로 파일에는 5 개의 헤더가 있지만 포함 된 데이터 세트에는 6 개의 레코드가 있습니다. 사용자에게 오류를 지적 할 수 있도록이 오류를 catch하고 싶습니다.

좋습니다.

답변

2

나는 그것을 풀었다. 위의 문제에 대한 해결 방법은 다음과 같습니다 나는 .validate 후이 코드를 구현 한()하고 일

.on("error", function(data){ 
    return false;       
}) 

. 당신도 이렇게 할 수

-1

:이 문제를 해결하기 위해하고있는 TRUE ':

csv 
.fromStream(stream, { 
    headers: true, 
    strictColumnHandling: true 
}) 
.validate(function(data) { 
    if (data.age > 18) 
     return false; 
    else 
     return true; 
} 
.on("data-invalid", function(data){ 
    // do something like log for example 
}); 
+0

당신이 무엇을'strictColumnHandling 설명 할 수 있습니까? 감사. – Joe

관련 문제