Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9151

nodeでcsv読み込もうとしたら後回しにされて全然上手くいかないんですが

$
0
0
ドブエンジニアの恥晒し日記です。 csvを配列にして読み込みたいんだが なんか処理まとめたoperate.jsをindex.jsで呼び出して実行するのが良いんじゃね? そう考えたぼくはcsvモジュールを使った処理を丸々コピペして index.js var path ="./読み込みたい.csv"; (async () => { console.log("↓ここに結果が出力されるよ!"); operate.csvRead(path); console.log("↑ここに結果が出力されるよ!"); })(); operate.js exports.csvRead = async function (path) { var parser = csv.parse({ columns: true, trim: true }, function (err, data) { console.log(data); }); fs.createReadStream(path).pipe(parser); }; 適当にこんな感じでいけるっしょ! 期待していたのは 理想 ↓ここに結果が出力されるよ! [ {yomikomi:kekka} ] ↑ここに結果が出力されるよ! こんな感じ しかし 現実 ↓ここに結果が出力されるよ! ↑ここに結果が出力されるよ! [ {yomikomi:kekka} ] ??????????????? あ、なんかawait入れたら同期処理になる(IQ3)から書けばいけるか! いけない なんで? 処理が後になるからoperateからreturnしてindexに渡すこともできない えー? なんかいけたやつ csvtojsonっていうモジュールを使ったらいけた operate.js const csvtojson = require("csvtojson"); exports.csvImport = async function (path) { var csv_arr = await csvtojson().fromFile(path); return csv_arr; }; つまりどういうこと? わかりません この記事からは何も得ることができません Qiitaさん無駄にリソース使ってしまって本当にすみません 思ったこと 脳死でawait書きまくってPromiseとか根本的な非同期I/Oの知識をすっとばしまくってるからこういう事になるんだとおもいました 今がんばって何が起こっていたのか調べています まる

Viewing all articles
Browse latest Browse all 9151

Trending Articles