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"
}
}