node-config несколько файлов конфигурации

Я смотрю на этот https://github.com/lorenwest/node-config, и он, кажется, делает все, что мне нужно. Однако мне интересно, если можно указать несколько файлов конфигурации на основе их категорий.

Возможно ли это сделать?

./config
   default-aws.json or aws-default.json
   production-aws.json or aws-production.json
   db-default.json
   db-production.json 

так далее..

так что конфиг файлы могут быть меньше? Я знаю, что мы могли бы сделать гигантский конфиг, в котором есть все необходимое в разных разделах. например

{
   "aws": {
      "kinesis": "my-stream"
       ....
    },
    "db": {
       "host": "my-host"
        ...
    }
}

У кого-нибудь есть какие-либо идеи, если это выполнимо, используя node-config или другую библиотеку, которая работает аналогично node-config?

Спасибо и привет олова

3 ответа

Я поддерживаю node-config, Следующая версия будет поддерживать функцию объявления нескольких NODE_ENV значения, разделенные запятой.

Поэтому, если вы занимались разработкой в ​​облаке, вы могли бы объявить "среду разработки", за которой следует "облачная" среда.

Сначала будет загружен конфигурационный конфигурационный файл, а затем "облачный" конфигурационный файл.

Связанный пул-запрос # 486.

Краткий ответ: нет. node-config не поддерживает это (ответ As @Mark).

Самый простой способ сделать это с помощью node-config - это использовать JavaScript в качестве файлов конфигурации ( https://github.com/lorenwest/node-config/wiki/Configuration-Files). Таким образом, вы по-прежнему получаете большинство преимуществ использования node-config. Затем вы можете просто включить в них другие файлы ( https://github.com/lorenwest/node-config/wiki/Special-features-for-JavaScript-configuration-files)

Обратите внимание, что было бы немного сложнее использовать несколько конфигурационных файлов и переопределений для внутренних файлов.

Немного более сложная реализация может использовать служебный класс в config, который фактически позволяет вам напрямую читать определенную папку, используя те же шаблоны, которые использует node-config внутри ( https://github.com/lorenwest/node-config/wiki/Using-Config-Utilities). В этом случае вы, вероятно, захотите объединить все файлы в одну конфигурацию, установив их в объекте конфигурации перед первым вызовом для получения ( https://github.com/lorenwest/node-config/wiki/Configuring-from-an-External-Source).

Я использую nconf. Это позволяет читать несколько файлов конфигурации в один и тот же объект. Вот пример:

var nconf = require('nconf');

//read the config files; first parameter is a required key
nconf.file('aws', {file: 'default-aws.json'});
nconf.file('db', {file: 'db-default.json'});

console.log(nconf.get('aws:kinesis'));
console.log(nconf.get('db:host'));

по умолчанию-aws.json:

{
  "aws": {
    "kinesis": "my-stream"
  }
}

дб-default.json:

{
  "db": {
    "host": "my-host"
  }
}
Другие вопросы по тегам