2016-07-07 11 views
1

Ich wollte nur wissen, ob es eine Möglichkeit gibt, einfach Umgebungsvariablen lesen, die ich gesetzt habe mit SET in cmd. Ich habe gelesen über process.env. [ENVVAR], aber wenn ich console.log die Variable, die ich in cmd gesetzt habe, zeigt es undefined. Auf anderen Threads habe ich gelesen, dass es gar nicht möglich ist, auf Windows env zuzugreifen. Variablen. Also was ist eigentlich richtig?NodeJS - Get Umgebungsvariablen mit cmd gesetzt

+0

Sie versuchen, Zugriff auf Umgebungsvariablen zu erhalten, die in der Windows-Cmd-Umgebung festgelegt wurden, BEVOR Sie node.js in diesem bestimmten Cmd-Shell-Fenster ausgeführt haben? Oder Umgebungsvariablen, die mit cmd innerhalb von node.js gesetzt wurden? Bitte erweitern Sie, was genau Sie vorhaben. Denken Sie daran, dass es viele verschiedene Umgebungen gibt. Wir müssen wissen, über welche Sie sprechen und welche die gewünschte Variable ist. – jfriend00

+0

Ich habe SET ENVNAME = VALUE in Windows cmd verwendet (und ich habe eine Systemumgebungsvariable in Windows gesetzt). Es enthält einen Pfad zu meiner Datenbank und möchte es jetzt in meiner Anwendung (Typoskript) lesen. Ich weiß sehr wenig darüber, also bin ich mir nicht sicher, ob das deine Fragen beantwortet. – Faigjaz

+0

Jedes cmd-Fenster ist eine separate Umgebung. Wenn Sie also eine Umgebungsvariable auf eins setzen, wirkt sich dies nicht auf ein anderes cmd-Fenster aus. Sie können jedoch eine Umgebungsvariable in einem cmd-Fenster setzen und DANN starten Sie in diesem Fenster Ihre node.js-Anwendung, die dann diese Umgebungsvariable lesen kann. – jfriend00

Antwort

1

Ich werde meine Kommentare in eine Antwort zusammenfassen.

Wenn Sie node.js aus einem cmd-Fenster starten, wird eine Kopie der aktuellen Benutzerumgebung nur für diesen node.js-Prozess erstellt. Auf diese Umgebung kann über process.env zugegriffen werden.

Diese Umgebung wird von keinem externen Agenten geändert. Sobald der Prozess node.js gestartet wurde, gehört seine Umgebung eindeutig zum Prozess node.js.

Durch Änderungen an der Windows-Standardumgebung über Windows Control Panel > System > Advanced System Settings > Advanced > Environment Variables wird beeinflusst, welche Variablen/Werte in neu erstellten Umgebungen festgelegt werden (z. B. neu erstellte cmd-Fenster). Es hat keine Auswirkungen auf derzeit geöffnete oder laufende Umgebungen.

Mit process.env können Sie alle vorhandenen Umgebungsvariablen in Ihrer eigenen Umgebung lesen. Sie können das Objekt process.env direkt ändern (Ändern von Werten, Entfernen von Eigenschaften usw.), und diese Änderungen werden von jedem anderen Code in Ihrem Prozess angezeigt, der auf process.env zugreift. Änderungen an einer Umgebung in einem anderen Cmd-Fenster wirken sich jedoch nicht auf die Umgebung in einem laufenden node.js-Programm aus.

Verwandte Themen