2015-12-31 3 views
0

Я пытаюсь настроить переменные среды для разных сред. До сих пор я определили переменные среды:Как настроить различные среды узлов

app/config.json:

"development": { 
     "PORT": 3000, 
     "APP_SECRET_KEY": "asdf", 
     "DB_NAME": "sadf", 
     "DB_USER": "sadf", 
     "DB_USER_PASSWORD": "asdf", 
     "DB_HOST": "asdf", 
     "DB_PORT": 5432, 
     "DB_SEARCHPATH": "asdf" 

    }, 

    "test": { 
     "PORT": 3000, 
     "APP_SECRET_KEY": "fdas", 
     "DB_NAME": "fdas", 
     "DB_USER": "fdsa", 
     "DB_USER_PASSWORD": "fdsa", 
     "DB_HOST": "fdsa", 
     "DB_PORT": 5432, 
     "DB_SEARCHPATH": "fdsa" 
    } 
} 

После этого, я не знаю, где/как сказать узел использовать Dev или тестовые переменные в зависимости от окружающей среды, я хочу запустите. Может ли кто-нибудь помочь или указать мне на учебник? Мне еще предстоит найти целостный учебник по этому вопросу.

Заранее спасибо.

+0

Somethiong нравится это http://himanshu.gilani.info/blog/2012/09/26/bootstraping-a-node-dot-js-app-for-dev-slash-prod-environment/? –

ответ

0

я вообще сделать что-то похожее на это на приложении-загрузке, чтобы скопировать динамические конфигурации в среде конфигурации:

var config = require('./config'); 
var env = process.env.NODE_ENV || 'development'; 

var envConfig = config[env]; 

// copy config to proceed.env 
for(var key in config) { 
    process.env[key] = config[key]; 
} 
1

Так первая вещь первым я бы рекомендовал вам изменить конфигурационные файлы JS и импортировать их как и любой другой модуль, это позволит вам добавить логику в вашу конфигурацию. В этом примере я выбираю свой env на основе переменной среды NODE_ENV.

var config = function () { 
switch(process.env.NODE_ENV) { 
case 'development': 
    return {...} 
case 'test': 
    return {...} 
....} 
module.exports = config(); 

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

+0

Вы можете использовать require на json-файлах так же, как вы можете в js-файлах. Вы возвращаете весь объект. –

+0

Я знаю это, но вы не можете добавить логику внутри json-файла. в вашем решении вам нужно будет каждый раз добавлять еще один модуль js или дополнительной логики – itai

+0

Но после его установки вы можете добавить дополнительные настройки или среды в json без необходимости добавления нового аргумента в оператор switch. –

Смежные вопросы