14 votes

Node.js : Quelle est la différence entre process.env et global ?

Comment le fait de définir une variable d'environnement comme process.env.thing = 42 diffère de la création d'une variable globale comme global.thing = 42 ?

Quand préférez-vous process.env.thing sur global ? Quels sont les avantages et les inconvénients des deux objets ?

10voto

Alex Wayne Points 58113

global est l'objet global. process est disponible dans le monde entier, car il s'agit d'une propriété de l'application global . En effet :

global.process === process //-> true

process.env a des propriétés définies par les variables d'environnement du système. Celles-ci peuvent être définies de diverses manières en dehors du nœud lui-même, et lues en accédant aux propriétés de l'environnement du système. process.env .

A la ligne de commande, essayez :

FOO=bar node -e "process.env.FOO"

Le module de processus est juste une chose disponible globalement.

4voto

Artur Gevorgyan Points 61

À mon avis, le choix doit être quelque chose comme ceci. 1) Si la variable dépend de l'environnement, elle doit être définie dans process.env. 2) Si la variable est juste une constante qui est accessible depuis toute l'application, elle doit être définie comme globale.

Je pense que si vous ne faites pas face à ces deux points, vous n'avez pas besoin de stocker une valeur dans les deux.

1voto

messerbill Points 2566

Si vous démarrez votre application node.js, vous voudrez peut-être utiliser des "environnements" différents, comme les API-URL et d'autres choses de ce genre, parce que dans un environnement de production / live, ces URL sont généralement différentes par rapport à votre environnement de développement local.

Cela signifie que vous pouvez injecter ces chemins à l'aide d'une balise .env par exemple AVANT de lancer votre application.

Voici un exemple :

NODE_API_URL=https://myApi.com/myEndpoints myApp.js

En global.thing = bla la ligne sera lue après les variables d'environnement ont été définies.

Une fois l'application en cours d'exécution, les variables d'environnement et les autres définitions globales sont accessibles à l'application.

0voto

rc_dz Points 225

À partir de la documentation NodeAPI

L'objet processus est un global qui fournit des informations sur, et contrôle sur le processus Node.js actuel. En tant que global, il est toujours disponible pour les applications Node.js sans utiliser require().

Vous voulez attacher vos variables d'environnement à cet objet pour vous assurer qu'il n'y a pas d'autre pollution des globales.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X