Ich bin auf Ubuntu 12.04 und ich lerne gerade über Umgebungsvariablen. Ich versuche, eine benutzerdefinierte Variable aus meiner Anwendung zu lesen, aber sie wird immer als undefined
angezeigt. Hier ist der Code meiner Test App:
Wenn ich die folgenden Befehle ausführe, sehen Sie, dass die Variable einen Wert hat:
%Vor% Ich kann echo $NODE_ENV
den ganzen Tag und es wird weiterhin "Produktion" anzeigen, aber wenn ich process.env.NODE_ENV
in meiner Knoten-Anwendung mache, wird immer "undefiniert" angezeigt.
Hier ist der seltsame Teil, wenn ich eine andere Umgebungsvariable zeige, die ich bereits kenne, sagen wir process.env.PATH
, dann funktioniert es.
Eine weitere Besonderheit ist, dass der Befehl printenv list
nicht meine benutzerdefinierte Variable NODE_ENV
enthält, obwohl echo $NODE_ENV
mir den richtigen Wert anzeigt. printenv NODE_ENV
zeigt auch nichts, aber printenv PATH
zeigt den richtigen Wert, so wie ich es getan habe, als ich in meiner Knotenanwendung auf PATH
zugegriffen habe.
Ich habe meinen Weg von etwas wirklich albern gefunden.
Ich hatte gerade die neuen exportierten Variablen hinzugefügt, aber mein Knotenprozess sah sie immer noch nicht. Dann erkannte ich, dass es nicht genug war, den Knotenprozess neu zu starten - ich musste auch ein neues Terminal (dh eine Bash-Instanz) öffnen. Sobald ich das getan habe, hat es gut funktioniert:)
Sie sollten in Erwägung ziehen, eine Bibliothek zum Verwalten der App-Konfiguration zu verwenden.
Zum Beispiel hilft nconf , die Konfiguration über
zu verwaltenWenn Sie sich die Quelle ansehen, können Sie Ссылка
lernenTags und Links bash node.js ubuntu environment-variables terminal