NODE_ENV
est une variable d'environnement rendue populaire par le framework de serveur Web express . Lorsqu'une application de nœud est exécutée, elle peut vérifier la valeur de la variable d'environnement et faire différentes choses en fonction de la valeur. NODE_ENV
spécifiquement est utilisé (par convention) pour indiquer si un environnement particulier est un environnement de production ou de développement . Un cas d'utilisation courant est l'exécution d'un code de débogage ou de journalisation supplémentaire s'il est exécuté dans un environnement de développement.
Accéder à NODE_ENV
Vous pouvez utiliser le code suivant pour accéder vous-même à la variable d'environnement afin de pouvoir effectuer vos propres vérifications et logique:
var environment = process.env.NODE_ENV
Ou bien en utilisant express ' app.get('env')
( note: par défaut "development"
)
Sachez que si vous ne l'avez pas défini explicitement NODE_ENV
pour votre environnement, il le sera undefined
.
Définition de NODE_ENV
La manière de définir réellement la variable d'environnement varie d'un système d'exploitation à l'autre et dépend également de la configuration de l'utilisateur.
Si vous souhaitez définir la variable d'environnement comme une variable unique, vous pouvez le faire à partir de la ligne de commande:
- linux et mac :
export NODE_ENV=production
- fenêtres :
$env:NODE_ENV = 'production'
À long terme, vous devriez persister afin qu'il ne se désactive pas si vous redémarrez - plutôt que de lister toutes les méthodes possibles pour le faire, je vous laisse chercher comment le faire vous-même!
La convention a dicté qu'il n'y a que deux valeurs que vous devez utiliser pour NODE_ENV
, soit production
ou development
, toutes les minuscules. Rien ne vous empêche d'ajouter plus de valeurs, mais ce n'est probablement pas une bonne idée, car je vois beaucoup de ce type de code dans la plupart des node_modules que j'utilise:
var development = process.env.NODE_ENV !== 'production';
Notez que c'est une très mauvaise idée d'essayer de mettre NODE_ENV
de l' intérieur d' une application nœud lui - même - si vous le faites il ne s'appliquera au processus à partir duquel il a été mis , donc les choses ne fonctionneront probablement pas comme vous les attendre à. Ne le faites pas, vous le regretterez.
app.configure('development', ...)
ou "production" pour définir certains paramètres uniquement pour les environnements de développement ou de production. Voir expressjs.com/api.html#app.configure