LoginSignup
1
3

More than 5 years have passed since last update.

Node.jsでcsvtojsonを使って、csvをJSON形式に変更する

Last updated at Posted at 2018-06-19

Node.jsでcsvファイルのデータをJSONに変える。

csvtojsonのページにあるようにコードを書く。
csvtojson

const csvFilePath='<path to csv file>'
const csv=require('csvtojson')
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
    //console.log(jsonObj);
// Async / await usage
const jsonArray=await csv().fromFile(csvFilePath);

これでの部分を自分のファイル名で実行しても、asyncが必要だとかいうエラーが出る。
Node.jsは非同期処理だから、そうしないとダメみたいなことを先輩に言われた。

Node.jsはバージョン7以降で、await/asyncがサポートされているので、そっちに変更する。

必要な部分をすべて書く。

var express = require('express');
var router = express.Router();

//csvファイルの読み込み
const csvFilePath='<path to csv file>'
const csv=require('csvtojson')
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
    //console.log(jsonObj);
})

const asyncFunc = async function() {
  const jsonArray=await csv().fromFile(csvFilePath);

  /*
    実際に処理したい内容。
   */

}

asyncFunc();

module.exports = router;
console.log("start server");

これでjsonArrayの中にcsvファイルのデータがJSON形式の状態で保存される。
asyncFuncの処理は非同期処理となり、まっさきにconsole.log("start server")が処理される。
その後、非同期で処理が終わればめでたくayncFuncの内容が呼び戻される。
重要なのは、asyncFunkのファンクションの中に処理を書くことだと思う。勉強したばかりでイメージがわかないが、多分それでOK.

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3