2017-08-19 15 views
1

ich Knoten recht neu bin und Express ...Ändern Express Konstante basierend auf URL (dh localhost vs Produktion)

Ich habe eine Konstante I für "Domain" in meinem Node/Express-Anwendung festgelegt. Ich wechsle ständig zwischen localhost und der tatsächlichen URL, wenn ich zwischen Entwicklung und Produktion umschalte.

Ich versuche herauszufinden, wie ich die URL automatisch testen kann, so dass, wenn der Code auf dem Server (dh tatsächliche Domäne URL vs localhost) gelesen wird, die richtige Domänen-URL festgelegt.

Hier ist mein Code:

function define(name, value) { 
    Object.defineProperty(exports, name, { 
     value:  value, 
     enumerable: true 
    }); 
} 


define("DOMAIN", "http://www.actual_domain.com"); 
// define("DOMAIN", "http://localhost:3000"); 

Wer eine einfache Lösung für dieses?

Danke !!

Antwort

1

gibt es viele Lösungen für diese, aber in der Regel diese von Umgebungsvariablen durchgeführt wird, hängt von Ihrer Plattform, aber in Linux-Systemen Sie im Anschluss an die in der Shell

export ENV_URL="http://www.example.com" 

und sicher zu machen, seine

echo $ENV_URL 

und in Ihrem Code erfolgreich exportiert Sie tun

const base_url = process.env.ENV_URL || "http://www.default.com"; 

i Auf Ihrem lokalen Rechner stellen Sie die ENV_URL auf localhost oder was immer Sie bevorzugen, und auf Ihrem Server stellen Sie sie auf Ihre tatsächliche URL ein.

oder Sie könnten einfach viele Konfigurationsdateien und Sie können durch die environemnt Variable wie

export ENV=PROD 

und in Ihrem Code den entsprechenden man bestimmen, können Sie die prod Konfigurationsdatei laden, die Ihre Umgebung Konfigurationen enthält.

0

Der De-facto-Weg, um so etwas zu tun, ist durch Umgebungsvariablen. Werfen Sie einen Blick auf 12factor.net für eine Menge von Best Practices, aber im Allgemeinen möchten Sie Unterschiede in der Umgebung in Umgebungsvariablen setzen, dann lesen Sie diese Variablen zur Laufzeit.

Verwandte Themen