2013-09-03 12 views
6

Ho un'app node.js che ho inviato a Heroku. Usa MongoDB per la sua memoria. Heroku offre un MongoDB gratuito come addon a cui la tua app può connettersi. Ora la mia domanda è, dato che la stringa di connessione è di questo formato: mongodb: // dbuser: dbpass @ host: port/dbname, e siccome Heroku usa git per spingere, come faccio a spingere il mio codice su un repository pubblico di GitHub senza rivelare il mio nome utente e password per tutti?Connessione al database in un'app di Heroku node.js senza rivelare dettagli di autenticazione su git

Non c'è modo di aprire il database ma solo le connessioni provenienti dalla mia app di Heroku?

Devo ammettere che sono piuttosto confuso sull'intera questione.

risposta

8

Si consiglia di leggere oltre Configuration and config vars nel centro dev di Heroku. Heroku si aspetta e incoraggia l'uso di variabili di configurazione (configurate nell'app Heroku stessa e non nella base di codice) per proteggere dati sensibili come le password. Utilizzare heroku config:set VARIABLE=value, ma si noti che la maggior parte dei componenti aggiuntivi di Heroku, quando forniti, aggiunge automaticamente le informazioni di autenticazione alle variabili di configurazione. Puoi controllare cosa è stato impostato con il comando heroku config.

Utilizzando il nodo, si accede alle variabili di ambiente con process.ENV.VARIABLE, dove VARIABLE è il nome della variabile di ambiente/configurazione a cui si sta tentando di accedere.

Come nota finale, è possibile aggiungere le variabili di ambiente locali per .env nella directory del progetto (aggiungere il file .gitignore!) ... caposquadra verrà caricato questi quando si utilizza foreman start o foreman run.

+0

Questo è fantastico e pratico! Grazie –

1

se si esegue:

heroku config 

il toolbelt mostrerà le variabili env, in questo modo è possibile utilizzare la variabile ENV all'interno del vostro codice:

process.env.VARIABLE 
Problemi correlati