sql >> Database >  >> NoSQL >> MongoDB

Databasereferenties correct verbergen

...Ik heb mijn db-verbindingsbestand en een ander "beschermd" bestand, waar mijn inloggegevens zijn, en dit bestand is opgenomen in .gitignore. Ik importeer het en bereik de gegevens..

De juiste manier om dit te doen is door omgevingsvariabelen te gebruiken.

Gebruik omgevingsvariabelen

Omgevingsvariabelen worden ingesteld op de omgeving , d.w.z. uw lokale ontwikkelmachine of de externe productieserver. Vervolgens leest u in uw app de omgevingsvariabelen en gebruikt u ze op de juiste manier.

Er zijn (tenminste) een paar redenen waarom het meestal zo wordt gedaan:

  • De inloggegevens bestaan ​​niet in een bestand dat kan worden gelezen door iemand die de inhoud van de repository bekijkt. Iemand die de repository kloont, hoeft uw . niet te weten databasegegevens.
  • De inloggegevens zijn waarschijnlijk verschillend tussen omgevingen. U gebruikt waarschijnlijk een andere database op uw lokale ontwikkelmachine en een andere database op uw externe productieserver.

Zo stelt u omgevingsvariabelen in (dit is voor Linux, andere besturingssystemen kunnen anders zijn):

$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

en zo lees je ze in Node.js:

console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'

of geef variabelen door aan het proces bij het opstarten

Als alternatief kunt u variabelen doorgeven bij het opstarten van het proces als volgt:

$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

Dat wordt echter over het algemeen afgeraden, aangezien u uw proces waarschijnlijk start via het npm-startscript. Sinds package.json , waar de npm start commando is gedefinieerd, is altijd vastgelegd in de repository, het verslaat het hele doel van het verbergen van de inloggegevens.



  1. 5 manieren om de minuten van een date in MongoDB te krijgen

  2. Documenten samenvoegen bij het importeren van een bestand in MongoDB

  3. redis time-out met predis

  4. StackExchange.Redis gebruiken in een ASP.NET Core-controller