基本的にすべてのプロジェクトで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
型変換を処理するため、取得時にコード内で常に行う必要はありません。もちろん、ブール値用の適切なパーサーを実装する必要がありますが、それらは既に存在し、ここで使用できます。