/ / Node.JS / Express store DB конфигурацията за различна среда в JSON - json, node.js, express

Node.JS / конфигурацията на Express store DB за различна среда в JSON - json, node.js, express

Аз работя с NodeJS Express app,

В момента има dev Околна среда, test env, и prod Околна среда.

Въпреки това, настройките на DB връзката са в кода, има ли начин за съхранение на DB конфигурацията и всички други конфигурации във файловия формат JSON като ги декларира в модул (отделно завсеки env или всичко в един модул, който трябва да бъде експортиран, може би има по подразбиране.JSON, Dev.JSON, Prod.JSON ... и т.н.) за всяка среда след това ги изискват съответно чрез задаване на правилната конфигурация за правилната среда в app.js ,

Бих искал да постигна това без да се нуждая от трета страна, като например .env или ncof.

Отговори:

0 за отговор № 1

Повечето от основните хостинг доставчици на NodeJs използват проста променлива на средата. Можете да използвате това:

process.env.NODE_ENV

За да я дефинирате сами, например "развитие" на вашия местен, можете да направите:

NODE_ENV=developpment node yourapp.js

С това, ви предлагам да използвате конфиг инструмент, като nconf (има някои добри конкуренти). Можете да направите това например:

nconf
.argv() // Takes arguments from CLI
.file("./env." + process.env.NODE_ENV + ".json") // takes from specific env file
.file("package", "./package.json"); // takes from package.json

Тук приоритетът е от най-важното до най-малкото: 1) argv 2) специфичен файл за околната среда 3) package.json


-1 за отговор № 2

Можете да изискате файл въз основа на околната среда.

const env = "test";  // This value can be taken from config or .env
const configs = require(`../path/${env}`);
console.log("DB Config", configs.DB_PATH);

В зависимост от вашата среда можете да заредите файла. И стойността за околната среда може да бъде извлечена от .env или всяка друга конфигурация.