/ / Node.JS / Express store Config pre rôzne prostredia v JSON - json, node.js, express

Node.JS / Express store Config pre rôzne prostredia v JSON - json, node.js, express

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ď č. 1

Väčš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.