...Jag har min db-anslutningsfil och en annan "skyddad" fil, där mina referenser finns, och den här filen ingår i .gitignore. Jag importerar den och når data..
Det korrekta sättet att göra det är att använda miljövariabler.
Använd miljövariabler
Miljövariabler ställs in på miljön , dvs. din lokala utvecklingsmaskin eller fjärrproduktionsservern. Sedan läser du miljövariablerna i din app och använder dem på rätt sätt.
Det finns (åtminstone) ett par anledningar till att det vanligtvis görs så här:
- Autentiseringsuppgifterna finns inte i en fil som kan läsas av någon som tittar på förvarets innehåll. Någon som klona förvaret behöver inte känna till din databasuppgifter.
- Inloggningsuppgifterna är sannolikt olika mellan miljöer. Du använder troligen en annan databas på din lokala utvecklingsmaskin och en annan databas i din fjärrproduktionsserver.
Så här ställer du in miljövariabler (detta är för Linux, andra operativsystem kan vara annorlunda):
$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar
och så här läser du dem i Node.js:
console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'
eller skicka variabler till processen vid uppstart
Alternativt kan du skicka variabler när du startar processen så här:
$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js
Men det är i allmänhet avskräckt eftersom du med största sannolikhet startar din process genom npm-startskriptet. Sedan package.json
, där npm start
kommandot är definierat, är alltid engagerat i förvaret, det motverkar hela syftet med att dölja referenserna.