NODE_ENV
ist eine Umgebungsvariable, die durch das Express- Webserver-Framework populär gemacht wird . Wenn eine Knotenanwendung ausgeführt wird, kann sie den Wert der Umgebungsvariablen überprüfen und basierend auf dem Wert verschiedene Aktionen ausführen. NODE_ENV
wird speziell (gemäß Konvention) verwendet, um anzugeben, ob eine bestimmte Umgebung eine Produktions- oder eine Entwicklungsumgebung ist . Ein häufiger Anwendungsfall ist das Ausführen von zusätzlichem Debugging- oder Protokollierungscode, wenn er in einer Entwicklungsumgebung ausgeführt wird.
Zugriff auf NODE_ENV
Mit dem folgenden Code können Sie selbst auf die Umgebungsvariable zugreifen, um Ihre eigenen Überprüfungen und Logik durchzuführen:
var environment = process.env.NODE_ENV
Oder alternativ mit express ' app.get('env')
( Hinweis: dies ist standardmäßig "development"
)
Beachten Sie NODE_ENV
, dass dies der Fall ist , wenn Sie dies nicht explizit für Ihre Umgebung festgelegt haben undefined
.
NODE_ENV einstellen
Wie die Umgebungsvariable tatsächlich festgelegt wird, variiert von Betriebssystem zu Betriebssystem und hängt auch von Ihrer Benutzerkonfiguration ab.
Wenn Sie die Umgebungsvariable einmalig festlegen möchten, können Sie dies über die Befehlszeile tun:
- Linux & Mac :
export NODE_ENV=production
- Fenster :
$env:NODE_ENV = 'production'
Langfristig sollten Sie dies beibehalten, damit es beim Neustart nicht deaktiviert wird. Anstatt alle möglichen Methoden dafür aufzulisten, lasse ich Sie selbst suchen, wie das geht!
Die Konvention hat vorgeschrieben, dass es nur zwei Werte gibt, die Sie NODE_ENV
entweder production
oder development
nur in Kleinbuchstaben verwenden sollten. Es hindert Sie nichts daran, weitere Werte hinzuzufügen, aber es ist wahrscheinlich keine gute Idee, da ich in vielen der von mir verwendeten node_modules viel von dieser Art von Code sehe:
var development = process.env.NODE_ENV !== 'production';
Beachten Sie, dass es sich um eine ist wirklich schlechte Idee, Satz zu versuchen , NODE_ENV
von innerhalb eines Knotens Anwendung selbst - wenn Sie es tun wird nur auf den Prozess , aus dem es wurde festgelegt , so die Dinge wahrscheinlich nicht funktionieren wie Sie es erwarten. Tu es nicht - du wirst es bereuen.
app.configure('development', ...)
"Produktion" verwenden können, um bestimmte Einstellungen nur für Entwicklungs- oder Produktionsumgebungen festzulegen. Siehe expressjs.com/api.html#app.configure