2013-09-03 13 views
6

Mam aplikację node.js, którą wysłałem do Heroku. Używa MongoDB do przechowywania. Heroku oferuje darmowy MongoDB jako dodatek, z którym twoja aplikacja może się połączyć. Teraz moje pytanie brzmi: ponieważ ciąg połączenia ma ten format: mongodb: // dbuser: dbpass @ host: port/dbname, a ponieważ Heroku używa git do pushowania, w jaki sposób mogę przekazać mój kod do publicznego repozytorium GitHub bez ujawniania mojego nazwa użytkownika i hasło do wszystkich?Połącz się z bazą danych w aplikacji Hercules node.js bez ujawniania szczegółów uwierzytelniania na git

Czy nie ma sposobu, aby otworzyć bazę danych, ale tylko do połączeń pochodzących z mojej aplikacji Heroku?

Muszę przyznać, że jestem całkiem zdezorientowany w tej sprawie.

Odpowiedz

8

Będziesz chciał przeczytać ponad Configuration and config vars w centrum dystrybucyjnym Heroku. Heroku oczekuje i zachęca do używania zmiennych konfiguracyjnych (skonfigurowanych w samej aplikacji Heroku, a nie w bazie kodu) do chronionych poufnych danych, takich jak hasła. Użyj heroku config:set VARIABLE=value, ale zwróć uwagę, że większość dodatków Heroku, gdy jest odpowiednio skonfigurowana, automatycznie dodaje informacje uwierzytelniające do zmiennych konfiguracyjnych. Możesz sprawdzić, co zostało ustawione za pomocą polecenia heroku config.

Używając węzła, uzyskasz dostęp do zmiennych środowiskowych za pomocą process.ENV.VARIABLE, gdzie VARIABLE to nazwa zmiennej środowiskowej/konfiguracyjnej, do której próbujesz uzyskać dostęp.

W końcowej nocie, można dodać lokalnych zmiennych środowiskowych do .env w katalogu projektu (dodaj plik .gitignore!) ... majster załaduje te podczas korzystania foreman start lub foreman run.

+0

To fantastyczne i praktyczny! Dzięki –

1

jeśli uruchomić:

heroku config 

toolbelt pokaże zmienne env, w ten sposób można użyć zmiennej env wewnątrz kodu:

process.env.VARIABLE 
Powiązane problemy