4

基本的にすべてのプロジェクトでnode-configを使用していますが、ほとんどの場合、環境変数として設定されているブール値と数値の解析の問題に遭遇します。

例えば

default.js

module.exports = { 
    myNumber = 10,
    myBool = true
}

カスタム環境変数.js

module.exports = { 
    myNumber = "MY_NUMBER",
    myBool = "MY_BOOL"
}

ここで明らかな問題は、環境変数として設定されたカスタム値でデフォルト値をオーバーライドすると、それらが数値またはブール値ではなく文字列値になることです。それでは、コードで型が正しいことを確認してください。私は常に型変換を行う必要があり、ブール値の場合はynなどの適切なライブラリを使用します。config.get()問題は、たとえば+config.get("myNumber")orを使用するたびにこの変換を行わなければならないことですyn(config.get("myBool"))

これを行うためのより良い、よりエレガントな方法はありますか?

私が見る1つの解決策は、ここでフォーマットで行われるように、タイププロパティを環境変数に追加することです。これにより、このようなことが可能になります...

カスタム環境変数.js

module.exports = { 
    myNumber = {
        name: "MY_NUMBER",
        type: "number"
    },
    myBool = {
        name: "MY_BOOL",
        type: "boolean"
    }
}

node-config型変換を処理するため、取得時にコード内で常に行う必要はありません。もちろん、ブール値用の適切なパーサーを実装する必要がありますが、それらは既に存在し、ここで使用できます。

4

2 に答える 2