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

141

Je voudrais changer la valeur de process.env.PORT, comment puis-je faire cela?

J'utilise Ubuntu 12.04.

Dennis
la source

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
JohnnyHK
la source
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
v2p
la source
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 
Vikash Kumar
la source
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.

Kyle Chadha
la source
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