Como alterar o valor de process.env.PORT no node.js?

141

Eu gostaria de mudar o valor de process.env.PORT , como posso fazer isso?

Estou executando o Ubuntu 12.04.

Dennis
fonte

Respostas:

281

Por apenas uma execução (no prompt do shell unix):

$ PORT=1234 node app.js

Mais permanentemente:

$ export PORT=1234
$ node app.js

No Windows :

set PORT=1234

No Windows PowerShell :

$env:PORT = 1234
JohnnyHK
fonte
4
Pelo amor de documentação, msdn.microsoft.com/en-us/library/windows/desktop/... para usuários do Windows
WraithKenny
3
Também para PowerShell, é $env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
WraithKenny
VAR_1=value VAR_2=11827 node-> simplesmente usar um espaço para usar mais de uma variável no mesmo comando
p4bloch
15

Você pode usar a solução multiplataforma https://www.npmjs.com/package/cross-env

$ cross-env PORT=1234
v2p
fonte
Esta é provavelmente a melhor solução. Há margem demais para erro nos diferentes terminais. Passei uns 40 minutos até encontrar cross-envresumos desse problema e simplesmente funcionar.
adi518
8

use o comando abaixo para configurar o número da porta no processo do nó enquanto executa o programa JS do nó:

set PORT =3000 && node file_name.js

A porta definida pode ser acessada no código como

process.env.PORT 
Vikash Kumar
fonte
2

EDIT: Pelo comentário do @ @ sshow, se você estiver tentando executar o aplicativo do nó na porta 80, a seguir não é a melhor maneira de fazê-lo. Aqui está uma resposta melhor: Como executo o Node.js na porta 80?

Resposta original:

Se você desejar fazer isso para executar na porta 80 (ou desejar definir a variável env mais permanentemente ),

  1. Abra seu perfil do bash vim ~/.bash_profile
  2. Adicione a variável de ambiente ao arquivo export PORT=80
  3. Abra o arquivo de configuração do sudoers sudo visudo
  4. Adicione a seguinte linha ao arquivo exatamente da seguinte maneira Defaults env_keep +="PORT"

Agora, quando você executá- sudo node app.jslo, deve funcionar como desejado.

Kyle Chadha
fonte
A execução dos scripts do nó como root (sudo) não é recomendada. Use sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080e ouça na porta 8080. stigok.tumblr.com/post/139320914543/…
sshow 6/16
1
Sim, você está certo, vinculei-me a uma discussão melhor (que também respondi, aviso ) e aprendi depois de usar inicialmente essa abordagem.
Kyle Chadha