NODE_ENV
è una variabile d'ambiente resa popolare dal framework express webserver. Quando viene eseguita un'applicazione nodo, può verificare il valore della variabile d'ambiente e fare cose diverse in base al valore. NODE_ENV
viene utilizzato specificamente (per convenzione) per stabilire se un determinato ambiente è un ambiente di produzione o di sviluppo . Un caso d'uso comune è l'esecuzione di codice di debug o di registrazione aggiuntivo se eseguito in un ambiente di sviluppo.
Accesso a NODE_ENV
È possibile utilizzare il codice seguente per accedere autonomamente alla variabile di ambiente in modo da poter eseguire i propri controlli e la propria logica:
var environment = process.env.NODE_ENV
O in alternativa usando express ' app.get('env')
( nota: per impostazione predefinita è "development"
)
Tieni presente che se non hai impostato esplicitamente il NODE_ENV
tuo ambiente, lo sarà undefined
.
Impostazione di NODE_ENV
Come impostare effettivamente la variabile di ambiente varia da sistema operativo a sistema operativo e dipende anche dalla configurazione dell'utente.
Se vuoi impostare la variabile d'ambiente come una tantum, puoi farlo dalla riga di comando:
- Linux e Mac :
export NODE_ENV=production
- windows :
$env:NODE_ENV = 'production'
A lungo termine dovresti insistere affinché non si disattivi al riavvio - piuttosto che elencare tutti i possibili metodi per farlo, ti lascerò cercare come farlo da solo!
La convenzione ha dettato che ci sono solo due valori che dovresti usare per NODE_ENV
, o production
o development
, tutti in minuscolo. Non c'è nulla che ti impedisca di aggiungere altri valori, ma probabilmente non è una buona idea, poiché vedo molto di questo tipo di codice in molti dei node_modules che utilizzo:
var development = process.env.NODE_ENV !== 'production';
Si noti che si tratta di una pessima idea per cercare di set NODE_ENV
da dentro un'applicazione nodo stesso - se lo si fa si applica solo al processo da cui è stato impostato , quindi le cose probabilmente non funzionano come ci si aspetta che. Non farlo - te ne pentirai.
app.configure('development', ...)
"produzione" per configurare determinate impostazioni solo per ambienti di sviluppo o produzione. Vedi expressjs.com/api.html#app.configure