2017-01-21 4 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') 
}); 

CONSOLEです。どうやってやるの?誰も私の助けを提案することができます。ありがとう。 マイコントローラ:

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を解析する場合は、間違いなく1つを使用してください!私の選択モジュールは次のとおりです。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ファイルは通常、行ごとに複数の値を持つため、配列の配列を各行に1つ返します。例えば ​​'rows = [['id']、['D11']、['D33']、['D55']]'のようにします。ヘッダーも解析され、 'rows [1] [0]'のようなものを使用する必要がある値のインデックスを作成することに注意してください。 –

0

How to read data From *.CSV file using javascript?からは、jQuery-CSVライブラリを使用してください。

注:このライブラリは、ほとんどの「シンプルな」ソリューションが見落としている厄介なケースを含め、RFC 4180に準拠したあらゆるCSVデータを処理するように設計されています。

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 
    } 
    }); 
}); 

jquery-csvの例hereからコードスニペット。

関連する問題