2013-03-20 13 views
9

Ich habe einen einfachen Knoten mit Mongo (über Mongojs) App, die lokal entwickelt und auf Heroku bereitgestellt wird. In meiner Entwicklungsumgebung möchte ich eine lokale Instanz von Mongo verwenden, während ich in der Produktion die Instanz verwenden möchte, die mir heroku über "process.env.MONGOLAB_URI" zur Verfügung stellt.Wie proccess.env in Node express app auf heroku gesetzt

Mein aktueller Ansatz ist, dass ich die DataVase-URL abhängig von der Umgebungsvariablen festlegen würde, aber wie gehe ich eigentlich in den Produktionsmodus? Außerdem, wie kann ich dies so konfigurieren, dass, wenn ich auf meinem lokalen Rechner seinen Entwicklungsmodus entwickle, wenn ich Heroku seinen Produktionsmodus hochlade?

app.configure('production', function(){ 
    // ... 
    databaseUrl = "mydb"; // the default 
}); 

app.configure('development', function(){ 
    // ... 
    databaseUrl = process.env.MONGOLAB_URI; 
}); 

db = require("mongojs").connect(databaseUrl); 
+0

Heroku DevCenter: [ Konfiguration und Konfiguration Vars] (https://devcenter.heroku.com/articles/config-vars) –

Antwort

8

die NODE_ENV Umgebungsvariable auf Ihrer lokalen Umgebung zu „Entwicklung“, und setzen Sie ihn auf Heroku auf „Produktion“. https://devcenter.heroku.com/articles/nodejs#setting-node-env

+0

genial! Das hat total funktioniert. danke :) – kumikoda

+5

das hatte mich für eine lange Zeit stecken. setze NODE_ENV auf heroku mit: 'heroku config: setze NODE_ENV =" production "' –

0

Sie können auch vor Ort Ihre Online-Datenbank zugreifen, indem Sie Ihre Anwendung starten, indem Sie die folgenden:

var mongoose = require('mongoose'); 
var dbURI = 'mongodb://localhost/Loc8r'; 
if (process.env.NODE_ENV === 'production') { 
    dbURI= process.env.MONGOLAB_URI; 
} 
mongoose.connect(dbURI); 

und Starten Ihre App mit "NODE_ENV = Produktion nodemon ist/www"

Verwandte Themen