我基本上在我的所有项目中都使用node-config,并且大多数时候我遇到解析设置为环境变量的布尔值和数字的问题。
例如
默认.js
module.exports = {
myNumber = 10,
myBool = true
}
自定义环境变量.js
module.exports = {
myNumber = "MY_NUMBER",
myBool = "MY_BOOL"
}
现在,明显的问题是,如果我用设置为环境变量的自定义值覆盖默认值,它们将是字符串值而不是数字或布尔值。所以现在,要确保在我的代码中类型是正确的。我总是必须进行类型转换,对于布尔值,请使用适当的库,例如yn。问题是我每次使用config.get()
例如+config.get("myNumber")
或yn(config.get("myBool"))
.
有没有更好更优雅的方法来做到这一点?
我看到的一种解决方案是将类型属性添加到环境变量中,因为它在此处使用格式完成。这将允许做这样的事情......
自定义环境变量.js
module.exports = {
myNumber = {
name: "MY_NUMBER",
type: "number"
},
myBool = {
name: "MY_BOOL",
type: "boolean"
}
}
node-config
将处理类型转换,并且在获取它时无需一直在代码中执行此操作。当然,需要为布尔值实现一个适当的解析器,但那些已经存在并且可以在这里使用。