2016-06-23 9 views
1

csvtojsonを使用して、CSVファイルをJSONに変換しようとしています。私はcsvtojsonライブラリとfsを使ってファイルを読み込みました。私はそれを変換することができますが、後でどのように変数にアクセスするのか分かりません。私はjavascriptには新しく、他の言語から来ていると思ったテクニックはうまくいきませんでした。別のjsファイルから関数を呼び出していて、converter.on('end_parsed'...)関数から変数にアクセスできるようにしたいと考えています。JavaScriptイベントのコールバック関数内にある変数にアクセスするにはどうすればよいですか?

'use strict' 

const fs = require('fs') 
const Converter = require('csvtojson').Converter 

exports.myfuncc = function() { 
    var converter = new Converter({}) 
    var csvEncoding = { encoding: 'utf16le' } 
    var csvString = fs.readFileSync('C:\\Users\\jgipe\\Desktop\\csvs\\201508.txt', csvEncoding).toString() 
    converter.fromString(csvString, function (err, result) { 
    if (err) { console.log(err) } 
    }) 

    converter.on('end_parsed', function (jsonArray) { 
    // Just examples of the data contained in one object 
    console.log(jsonArray[9]['Date']) 
    console.log(jsonArray[9]['Package Name']) 
    console.log(jsonArray[9]['Current Device Installs']) 
    console.log(jsonArray[9]['Daily Device Installs']) 
    console.log(jsonArray[9]['Daily Device Uninstalls']) 
    console.log(jsonArray[9]['Daily Device Upgrades']) 
    console.log(jsonArray[9]['Current User Installs']) 
    console.log(jsonArray[9]['Total User Installs']) 
    console.log(jsonArray[9]['Daily User Installs']) 
    console.log(jsonArray[9]['Daily User Uninstalls']) 
    }) 
} 
+0

同期を使用しないでくださいfsの方法。 –

+1

これは問題ではありません。 –

答えて

2

以下のコードは次のように、exports.myfunccのパラメータとしてコールバック関数を入れて:

'use strict' 

const fs = require('fs') 
const Converter = require('csvtojson').Converter 

exports.myfuncc = function (callback) { 
    var converter = new Converter({}) 
    var csvEncoding = { encoding: 'utf16le' } 
    var csvString = fs.readFileSync('C:\\Users\\jgipe\\Desktop\\csvs\\201508.txt', csvEncoding).toString() 
    converter.fromString(csvString, function (err, result) { 
    if (err) { console.log(err) } 
    }) 

    converter.on('end_parsed', callback) 
} 

を次に、別のファイルにこのようにそれを呼び出す:

exports.myfuncc(function(jsonArray){ 
    // You can access jsonArray... 
}); 
+0

ありがとうございました! – AmishJohn81

関連する問題