Ich bin gerade dabei, meine Node / Express-App zu einer Produktionsbereitstellung zu machen, und als Teil davon muss ich dafür sorgen, dass sie in einem produktionsfreundlichen Modus läuft (z. B. weniger Debugs auf stdOut, Protokolle auf verschiedene schreiben Orte, sagen Sie den Benutzern weniger, wenn Fehler auftreten usw.).
Ich habe ein bisschen damit zu kämpfen, da, wann immer ich eine Variable von praktisch jeder Art setze, um einen "Produktions" -Modus aufzurufen, hat sie keine Auswirkungen auf das laufende Programm.
Wenn es im Dev-Modus gestartet wird, läuft mein Code durch Gulp und führt dieses Skript aus:
%Vor%Was Sie wissen, ist nur das generierte Startskript aus dem Express-Generator.
Um es im Live-Modus zu starten, habe ich einen alternativen Startup für den Server erstellt (ich könnte sowieso kaum Schluck verwenden) und live.js führt dies aus:
%Vor% Aber wenn ich app.get('env')
irgendwo in der App verwende (z. B. in app.js oder in verschiedenen Abhängigkeiten), gibt es immer noch 'Entwicklung' zurück, so dass keine meiner Produktionsaufgaben stattfindet.
Was mache ich hier falsch?
Vielen Dank.
Sie müssen die Variable NODE_ENV
in der Befehlszeile setzen, wenn Sie Ihre NodeJS-Anwendung ausführen.
Zum Beispiel:
%Vor% Außerdem ist NODE_ENV
eine Umgebungsvariable. Wenn Sie sie also in der Umgebung auf Ihrem Server festlegen, müssen Sie sie nicht bei jeder Ausführung Ihrer Anwendung angeben, damit node app.js
funktioniert.
Sie können Ihre Umgebungsvariablen in der Datei '/ etc / environment' einstellen. Hier sind weitere Details dazu: Ссылка