...Jeg har min db-forbindelsesfil og en anden "beskyttet" fil, hvor mine legitimationsoplysninger er, og denne fil er inkluderet i .gitignore. Jeg importerer det og når dataene..
Den korrekte måde at gøre det på er at bruge miljøvariabler.
Brug miljøvariabler
Miljøvariabler indstilles på miljøet , dvs. din lokale udviklingsmaskine eller fjernproduktionsserveren. Derefter læser du miljøvariablerne i din app og bruger dem korrekt.
Der er (mindst) et par grunde til, at det normalt gøres sådan her:
- Legitimationsoplysningerne findes ikke i en fil, der kan læses af en person, der ser lagerindholdet. En person, der kloner depotet, behøver ikke at kende din databaselegitimationsoplysninger.
- Logioplysningerne er sandsynligvis forskellige mellem miljøer. Du bruger sandsynligvis en anden database på din lokale udviklingsmaskine og en anden database på din fjernproduktionsserver.
Sådan indstiller du miljøvariabler (dette er til Linux, andre OS'er kan være anderledes):
$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar
og her er, hvordan du læser dem i Node.js:
console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'
eller videregive variabler til processen ved opstart
Alternativt kan du videregive variabler, når du starter processen som sådan:
$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js
Det frarådes dog generelt, da du højst sandsynligt starter din proces gennem npm start-scriptet. Siden package.json
, hvor npm start
kommandoen er defineret, er altid forpligtet til depotet, det besejrer hele formålet med at skjule legitimationsoplysningerne.