Spúšťam aplikáciu NodeJS Express,
Momentálne máte dev
env, test
env a prod
env.
Avšak, nastavenia pripojenia DB sú v kóde, je tam bezpečný a najlepšie prax spôsob, ako uložiť DB config a všetky ostatné configs vo formáte JSON ich vyhlásením do modulu (samostatne prekaždý env alebo všetko v jednom module, ktorý sa má exportovať, možno mať predvolené hodnoty.JSON, Dev.JSON, Prod.JSON ... atď.) pre každé prostredie potom ich vyžadujú zodpovedajúcim nastavením správnej konfigurácie pre správne prostredie v app.js ,
Chcel by som to dosiahnuť bez toho, aby som závislý na balíku tretej strany, ako je .env alebo ncof.
odpovede:
0 pre odpoveď č. 1Väčšina hlavných poskytovateľov hostingu NodeJs používa jednoduchú premennú prostredia. Môžete použiť toto:
process.env.NODE_ENV
Ak to definujete sami, napríklad "vývoj" na miestnej úrovni, môžete to urobiť:
NODE_ENV=developpment node yourapp.js
S týmto odporúčam, aby ste použili konfiguračný nástroj, napríklad nconf (existujú niektorí dobrí konkurenti). Môžete to urobiť napríklad:
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
Tu je priorita z najdôležitejšieho na najmenšie: 1) argv 2) špecifický súbor prostredia 3) package.json
-1 pre odpoveď č. 2
Môžete požadovať súbor založený na prostredí.
const env = "test"; // This value can be taken from config or .env
const configs = require(`../path/${env}`);
console.log("DB Config", configs.DB_PATH);
V závislosti od vášho prostredia môžete načítať súbor. Hodnotu pre prostredie je možné získať z .env alebo inej konfigurácie.