2017-01-21 5 views
6

노드 js를 사용하여 CSV 파일을 읽으려고합니다. 여기에 내가 열 ID의 요소를 얻고 배열 사람들을 저장할노드 js에서 csv 파일을 읽는 방법

ID 
D11 
D33 
D55 

: 그녀는 내 코드

fs.readFile(config.csvUploadPath, function read(err, data) { 
    if (err) { 
     throw err; 
    } 
    console.log(data + 'my data') 
}); 

콘솔입니다. 어떻게해야합니까? 아무도 내가 도움을 제안 할 수 있습니다. 감사. 내 컨트롤러 :

var partnersModel = new partners(params); 
     fs.readFile(config.csvUploadPath, function read(err, data) { 
      if (err) { 
       throw err; 
      } 
     dataArray = data.toString().split(/\r?\n/); 
      dataArray.forEach(function(v,i){ 
       if(v !== 'DUI'){ 
        partnersModel.dui.push(v); 
       } 
      }); 
     }); 
     partnersModel.save(function(error, response){ 
+1

http://stackoverflow.com/questions/23080413/nodejs-reading-csv-file –

+0

가능한 [NodeJs reading csv file] (http://stackoverflow.com/questions/23080413/nodejs-reading-csv)의 가능한 복제본 -file) – crowchirp

+0

실제로 이것은 CSV 파일입니까, 아니면 ID 목록이있는 파일입니까? 이것은 라이브러리가 없으면 파싱하기 쉽습니다 만, 만약 당신이 진정한 CSV를 파싱한다면 확실히 사용하십시오! 내가 선택한 모듈은 다음과 같습니다. https://www.npmjs.com/package/csv –

답변

9

이 라이브러리를 사용하여 CSV는 개는 많이 있습니다. 나는 csv 패키지를 즐기러왔다. 그것은 여기에있다 : https://www.npmjs.com/package/csv. 다음은 비동기 API를 사용하는 간단한 예제입니다. 파일은 한 줄에 여러 값을 가지고 줄 바꿈 외에 분리 문자를 포함하지 않기 때문에

const fs = require('fs') 
var parse = require('csv-parse') 
fs.readFile(inputPath, function (err, fileData) { 
    parse(fileData, {columns: false, trim: true}, function(err, rows) { 
    // Your CSV data is in an array of arrys passed to this callback as rows. 
    }) 
}) 

, 그것은 단지 하찮게 CSV입니다. 어쩌면 String.prototype.split()은 당신을위한 제품일까요?

const fs = require('fs') 
fs.readFile(inputPath, 'utf8', function (err, data) { 
    var dataArray = data.split(/\r?\n/); //Be careful if you are in a \r\n world... 
    // Your array contains ['ID', 'D11', ... ] 
}) 
+0

감사합니다. 코드에서 무엇을 뽑아 낼 수 있습니까? – MMR

+0

rows = [ '11', '33, '34'] ....? – MMR

+0

CSV 파일은 일반적으로 행당 여러 값을 가지므로 각 행에 대해 하나의 배열 배열을 반환합니다. 예''rows = [[ 'id'], [ 'D11'], [ 'D33'], [ 'D55']]'. 헤더가 파싱되었고,'rows [1] [0]'과 같은 것을 사용할 필요가있는 값들 중 하나를 인덱스하는 것에 주목하자. –

0

How to read data From *.CSV file using javascript?에서 jQuery-CSV 라이브러리를 사용하십시오.

참고 : 라이브러리는 대부분의 '단순한'해결책이 간과하는 모든 까다로운 사례를 포함하여 RFC 4180과 호환되는 모든 CSV 데이터를 처리하도록 설계되었습니다. jquery-csv의 예 here에서

var fs = require('fs'); 
var $ = jQuery = require('jquery'); 
$.csv = require('jquery-csv'); 

var sample = './path/to/data/sample.csv'; 
fs.readFile(sample, 'UTF-8', function(err, csv) { 
    $.csv.toArrays(csv, {}, function(err, data) { 
    for(var i=0, len=data.length; i<len; i++) { 
     console.log(data[i]); //Will print every csv line as a newline 
    } 
    }); 
}); 

코드.

관련 문제