как перезаписать значение переменной конфигурации из cmd с помощью модуля конфигурации nodejs - PullRequest
0 голосов
/ 18 февраля 2019

Как изменить или перезаписать переменные файла default.json модуля конфигурации из cmd.

Вот файл default.json

"test":"TEST1"

и я хочу изменить значение тестовой переменной из cmd, но когда я запускаю эту команду в cmd, я показываю значение теста, установленное в default.json, а не то значение, которое я предоставляю в команде cmd.

Вот команда, которую я использую для изменения значения теста

$env:TEST="TEST_VALUE" node app.js

Пожалуйста, помогите мне решить эту проблему, как я могу сделать это извне

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Надеюсь, это поможет вам ...

default.json

{
    "test":"TEST1"
}

app.js

DEFAULT_CONFIG = require('./default.json');
process.argv.forEach((arg,index)=>{
    if(arg.match('--test')){
        DEFAULT_CONFIG.test = process.argv[index+1] ? 
            process.argv[index+1] : 
            DEFAULT_CONFIG.test;
    }
})
console.log(`test is now set to ${DEFAULT_CONFIG.test}`);

Командная строка

foo@bar:~$ node app.js
test is now set to TEST1

foo@bar:~$ node app.js  --test TEST_VALUE
test is now set to TEST_VALUE

=======================================================

Опция # 2 На основе комментария OP

default.json

{
    "test":"TEST1"
}

dev_config.json

{
    "test":"TEST_VALUE"
}

app.js

DEFAULT_CONFIG = process.env.NODE_ENV === 'dev' ?
    require('./dev_config.json') :
    require('./default.json');

Командная строка

Для использования настроек конфигурации dev_config.json

foo@bar:~$ NODE_ENV=dev node app.js

или

Для использования обычных настроек конфигурации default.json

foo@bar:~$ node app.js
0 голосов
/ 18 февраля 2019

Вы можете сделать для систем Unix:

export test="Test1" 

Использовать «set» для windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...