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.