0

私のアプリケーションには、JSON ファイル (preferences.json) に格納された設定のリストがあります。好みに応じて選択的に使用したい、対応する機能のリストがあります。各関数の結果はレポートに追加されます。

Preferences.json は次のようになります。

{
    "getTemperature": true;
    "getHumidity": false;
    "getPrecipitation": true
}

関数は、インポートしているモジュール (functions.js) にあります。彼らは次のようなものです:

var getTemperature = function(){
  //retrieve temperature;
  //append temperature to file;
}

var getHumidity = function(){
  //retrieve humidity;
  //append humidity to file;
}

var getPrecipitation = function() {
  //retrieve precipitation;
  //append precipitation to file;
}

これまでに試したこと、明らかに機能していないこと

var prefs = require('./preferences.json');
var funcs = require('./functions.js');

for (key in prefs){
  if(prefs[key]) {
    funcs.key(); // <- Doesn't work, b/c 'key()' isn't a function. But you get the idea.
  }
}

これを達成する方法を知っている場合は、お知らせください。

私がまだ試していない 1 つのアイデア (コードのかなりの書き直しが必要になるでしょう) は、プリファレンス ダミー変数と共に関数を疑似クラスにネストすることです。次に、設定ファイルを使用して疑似クラスのインスタンスを作成します。私の考えでは、疑似クラスのインスタンスは設定をそのまま保持し、選択的な実行を各関数にハードコーディングできます (つまり、 if(myInstance.tempBool){myInstance.getTemperature()} )。ただし、さらに多くの機能があり、将来さらに追加する可能性があるため、反復したいと思います。

何かご意見は?

4

2 に答える 2