2014-07-21 3 views
1

URL을 요청하려고하면 해당 파일에서 CSV 파일을 가져 와서 해당 CSV를 json으로 변환하려고합니다. 나는이 코드가 request, asynccsv-parserasync waterfall을 사용하여 parse-csv 함수를 실행할 수 없습니다.

을 사용하고 있습니다 :

var fs = require('fs'), 
    async = require('async'), 
    request = require('request'), 
    csv = require('csv-parser'), 
    fileUrl = 'http://forever.codeforamerica.org/fellowship-2015-tech-interview/Violations-2012.csv' 

var getData = function(cb){ 
    request(fileUrl, function(err, response, body){ 
     (err) ? cb(err) : cb(null, body); 
    }) 
}; 

var parseCsv = function(csvData, cb){ 
    var violations = []; 
    fs.createReadStream(csvData) 
     .pipe(csv()) 
     .on('data', function(violation){ 
      violations.push(violation) 
     }) 
     .on('end', function(){ 
      cb(null, violations) 
     }) 
} 

// run the functions 
async.waterfall([ 
    getData, 
    parseCsv 
], function(err, results){ 
    if (err) return err; 

    console.log('this does not log') 
}) 

내가 파일 벌금을 얻을,하지만 때마다 그것은 CSV 데이터에 상관없이 내가 콘솔 무엇을하지 JSON을, 로그 아웃. 로그

+0

비슷한 문제? 로그 구문을 어디에 넣었는지 보여주십시오. – Bergi

답변

2

배관이 올바르게 처리되지 않았 으면 파이프에 '요청'응답을 직접 전달할 수 있습니다.

var fs = require('fs'), 
    async = require('async'), 
    request = require('request'), 
    csv = require('csv-parser'), 
    fileUrl = 'http://forever.codeforamerica.org/fellowship-2015-tech-interview/Violations-2012.csv'; 

var parseCsv = function(cb){ 
    var violations = []; 
    request.get(fileUrl) 
    .pipe(csv()) 
     .on('data', function(violation){ 
      violations.push(violation); 
     }) 
     .on('end', function(){ 
      cb(null, violations); 
     }); 
}; 

// run the functions 
async.waterfall([ 
    parseCsv 
], function(err, results){ 
    console.log(err, results); 
}); 

출력 :

{violation_id : '225880', inspection_id : '289908', violation_category '비위생적 인 환경', violation_date : '2012년 10월 17일 0시 : 00 ', violation_date_closed :'2012-11-08 00:00:00 ', violation_type :'비위생적 인 층 또는 벽 '}, {violation_id :'225905 ', inspection_id :'289962 ', violation_category :'Vegetation ' , violation_date : '201 2-20-26 00:00:00 ', violation_date_closed :'2013-01-07 00:00:00 ', violation_type :'자란 식물 '}, {violation_id :'224854 ', inspection_id :'288325 '

PS : 당신은 어떤`results`를 기록하지 않는 here

관련 문제