冒号单独的nconf层次结构,例如,
{
"AUTH": {
"ENABLED": true
}
}可通过以下方式访问:
nconf.get("AUTH:ENABLED");我想通过npm start下的环境和/或命令行选项来覆盖它,例如,
AUTH:ENABLED=false npm start这在bash和zsh下都失败了,因为冒号。用\转义冒号没有帮助。
在任何情况下(等级或非等级),下列规定也失败:
npm start --AUTH:ENABLED=false如何以一种有效的方式将分层配置值传递给nconf/乐观主义者?
发布于 2014-07-29 14:31:25
最简单的方法是将nconf配置为使用不太糟糕的分隔符,如docs所示:
//
// Or use both options
//
nconf.env({
separator: '__',
whitelist: ['database__host', 'only', 'load', 'these', 'values']
});
var dbHost = nconf.get('database:host');我的另一个建议是考虑一个不那么奇怪的配置模块。国家预防机制有几十个。通过nconf github问题,我看到了足够多的警告信号,表明这个模块只是做了太多的选择。配置应该是直接的。如果不是,那就走开。我的猜测是,如果您正在构建像nodejitsu这样的PaaS,那么这可能是合适的,但是大多数应用程序不需要一个无限深的配置层次结构,有十几个不同的位置来检查数据。
https://stackoverflow.com/questions/25017495
复制相似问题