まかろぐ

PCゲームのこととかWeb関連のこと

node.jsのcsv読み書きの仕方(promise版)

自分用のメモ(AsyncAwaitの書き方がすぐでてこなかったので)

こちらのライブラリを利用します

github.com

csvを読み込む

同期実行です

npm install csv-parse

const fs = require('fs');
const parse = require('csv-parse/lib/sync');

const data = fs.readFileSync(filepath);
if (!data) {
  throw new Error('cannot find file');
}

const result = parse(data, { columns: true, ltrim: true, rtrim: true, escape: '\\' });

csvに書き込む

async関数の中で書きます

npm install csv-stringify

const util = require('util');
const csv = require('csv');

const data = [headers, ...body];
const output = await util.promisify(csv.stringify)(data);

await util.promisify(fs.writeFile)(outputPath, output);

util.promisifyでコールバック関数のfs.writeFileをpromise化しています。