冒号分开nconf层次结构,例如,
{
"AUTH": {
"ENABLED": true
}
}
通过以下方式访问:
nconf.get("AUTH:ENABLED");
我想通过 npm start
下的环境和/或命令行选项覆盖它,例如,
AUTH:ENABLED=false npm start
由于冒号,这在 bash 和 zsh 下都失败了。使用 \
转义冒号没有帮助。
以下在所有情况下(分层或非分层)也会失败:
npm start --AUTH:ENABLED=false
如何以有效的方式将分层配置值传递给 nconf/optimist?
最佳答案
最简单的事情是根据文档配置 nconf 使用一个不那么糟糕的分隔符:
//
// Or use both options
//
nconf.env({
separator: '__',
whitelist: ['database__host', 'only', 'load', 'these', 'values']
});
var dbHost = nconf.get('database:host');
我的另一个建议是考虑一个不太奇怪的配置模块。 npm 上有几十个。翻看nconf github issues我看到了足够多的警告信号,表明这个模块的选项太多了。配置应该很简单。如果不是,请走开。我的猜测是,如果您正在构建 nodejitsu 等 PaaS,这可能是合适的,但大多数应用程序不需要无限深的配置层次结构和十几个不同的地方来检查数据。
关于node.js - 如何在命令行上将分层配置值传递给 nconf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25017495/