如何在命令行上将分层配置值传递给nconf?

 mobiledu2502860117 发布于 2022-12-31 16:48

冒号分隔nconf层次结构,例如,

{
  "AUTH": {
    "ENABLED": true
  }
}

通过以下方式访问

nconf.get("AUTH:ENABLED");

我想通过环境和/或命令行选项来覆盖它npm start,例如,

AUTH:ENABLED=false npm start

由于冒号,这在bash和zsh下都失败了.逃离冒号\并没有帮助.

在所有情况下(分层或不分层),以下内容也会失败:

npm start --AUTH:ENABLED=false

如何以有效的方式将分层配置值传递给nconf/optimist?

1 个回答
  • 最简单的方法是根据文档配置nconf以使用不太可怕的分隔符:

    //
    // Or use both options
    //
    nconf.env({
      separator: '__',
      whitelist: ['database__host', 'only', 'load', 'these', 'values']
    });
    var dbHost = nconf.get('database:host');
    

    我的另一个建议是考虑一个不太奇怪的配置模块.npm上有几十个.通过查看nconf github问题,我看到了足够的警告信号,表明这个模块只是做了太多选项.配置应该很简单.如果不是,走开.我的猜测是,如果您正在构建像nodejitsu这样的PaaS,这可能是合适的,大多数应用程序不需要具有十几个不同位置的无限深度配置层次结构来检查数据.

    2022-12-31 16:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有