Comment changer la valeur de process.env.PORT dans node.js?


Réponses:


281

Pour une seule exécution (à partir de l'invite du shell unix):

$ PORT=1234 node app.js

Plus en permanence:

$ export PORT=1234
$ node app.js

Sous Windows :

set PORT=1234

Dans Windows PowerShell :

$env:PORT = 1234

4
Pour des raisons de documentation, msdn.microsoft.com/en-us/library/windows/desktop/… pour les utilisateurs de Windows
— WraithKenny

3
Aussi pour Powershell, c'est $env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
— WraithKenny

VAR_1=value VAR_2=11827 node-> utilisez simplement un espace pour utiliser plus d'une variable sur la même commande
— p4bloch

15

Vous pouvez utiliser la solution multiplateforme https://www.npmjs.com/package/cross-env

$ cross-env PORT=1234

C'est probablement la meilleure solution. Il y a beaucoup trop de marge d'erreur avec les différents terminaux. J'ai passé environ 40 minutes jusqu'à ce que je trouve des cross-envrésumés de ce problème et fonctionne juste.
— adi518

8

utilisez la commande ci-dessous pour définir le numéro de port dans le processus du nœud lors de l'exécution du programme JS du nœud:

set PORT =3000 && node file_name.js

Le port défini est accessible dans le code comme

process.env.PORT 

2

EDIT: Selon le commentaire de @ sshow, si vous essayez d'exécuter votre application de nœud sur le port 80, ce n'est pas la meilleure façon de le faire. Voici une meilleure réponse: comment exécuter Node.js sur le port 80?

Réponse originale:

Si vous souhaitez faire cela pour exécuter sur le port 80 (ou si vous souhaitez définir la variable env de manière plus permanente ),

  1. Ouvrez votre profil bash vim ~/.bash_profile
  2. Ajoutez la variable d'environnement au fichier export PORT=80
  3. Ouvrez le fichier de configuration sudoers sudo visudo
  4. Ajoutez la ligne suivante au fichier exactement comme ceci Defaults env_keep +="PORT"

Maintenant, lorsque vous exécutez, sudo node app.jscela devrait fonctionner comme vous le souhaitez.


L'exécution de vos scripts de nœuds en tant que root (sudo) n'est pas recommandée. Utilisez sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080et écoutez plutôt sur le port 8080. stigok.tumblr.com/post/139320914543/…
— sshow

1
Oui, vous avez raison, j'ai lié à une meilleure discussion (à laquelle j'ai également répondu, avertissement ) et appris après avoir initialement utilisé cette approche.
— Kyle Chadha
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.