npmでcsv
で検索すると、真っ先に表示されるのがcsvというモジュール
今回はこのcsvに含まれるcsv-parseを使ってcsvを同期読み込みしてみた。
読み込むCSV
input.csv
tanaka,100,F
itou,150,M
kobayashi,200,M
suzuki,120,F
noda,80,M
doi,120,F
モジュールのインストール
csvをインストールしても良いが、今回は読み込みのみをしたかったのでcsv-parseをインストール。
$ npm install --save csv-parse
やってみる
以下の例ではオプション無しで使用していますが、第二引数にはデリミタやヘッダー行のオプションを指定できる。
read-sync.js
'use strict';
const fs = require('fs');
const csvSync = require('csv-parse/lib/sync'); // requiring sync module
const file = 'input.csv';
let data = fs.readFileSync(file);
let res = csvSync(data);
console.log(res);
出力
$ node read-sync.js
[ [ 'tanaka', '100', 'F' ],
[ 'itou', '150', 'M' ],
[ 'kobayashi', '200', 'M' ],
[ 'suzuki', '120', 'F' ],
[ 'itou', '80', 'M' ],
[ 'doi', '120', 'F' ] ]
ちょっとしたツール作成の際にはStream APIやcallbackを使って1レコードずつ読み込む方法よりも扱いやすいかと思います。