NODE_ENV
jest zmienną środowiskową upowszechnioną przez ekspresowy framework webserver. Gdy aplikacja węzłowa jest uruchomiona, może sprawdzić wartość zmiennej środowiskowej i wykonywać różne czynności na podstawie tej wartości. NODE_ENV
w szczególności jest używany (zgodnie z konwencją) do stwierdzenia, czy dane środowisko jest środowiskiem produkcyjnym czy programistycznym . Typowym przypadkiem użycia jest uruchomienie dodatkowego kodu debugowania lub logowania, jeśli działa w środowisku programistycznym.
Dostęp do NODE_ENV
Możesz użyć następującego kodu, aby uzyskać dostęp do zmiennej środowiskowej, abyś mógł wykonać własne kontrole i logikę:
var environment = process.env.NODE_ENV
Lub alternatywnie przy użyciu express ” app.get('env')
( uwaga: domyślnie jest "development"
)
Pamiętaj, że jeśli nie ustawiłeś wyraźnie NODE_ENV
dla swojego środowiska, tak będzie undefined
.
Ustawienie NODE_ENV
Sposób faktycznego ustawienia zmiennej środowiskowej różni się w zależności od systemu operacyjnego, a także zależy od konfiguracji użytkownika.
Jeśli chcesz ustawić zmienną środowiskową jako jednorazową, możesz to zrobić z wiersza poleceń:
- Linux i Mac :
export NODE_ENV=production
- Windows :
$env:NODE_ENV = 'production'
W dłuższej perspektywie powinieneś to zachować, aby nie zresetować się po ponownym uruchomieniu - zamiast wypisać wszystkie możliwe metody, to pozwolę ci poszukać, jak to zrobić!
Konwencja dictacted, że istnieją tylko dwie wartości należy użyć do NODE_ENV
, albo production
albo development
, wszystko małymi literami. Nic nie stoi na przeszkodzie, aby dodać więcej wartości, ale prawdopodobnie nie jest to dobry pomysł, ponieważ widzę dużo tego rodzaju kodu w wielu modułach node_modu, których używam:
var development = process.env.NODE_ENV !== 'production';
Zauważ, że naprawdę złym pomysłem jest próba ustawienia NODE_ENV
z poziomu samej aplikacji węzła - jeśli to zrobisz, będzie ona dotyczyć tylko procesu, w którym została ustawiona , więc prawdopodobnie rzeczy nie będą działać tak, jak się tego spodziewasz. Nie rób tego - pożałujesz.
app.configure('development', ...)
lub „produkcji”, aby ustawić określone ustawienia tylko dla środowisk programistycznych lub produkcyjnych. Zobacz expressjs.com/api.html#app.configure