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


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

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

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 

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.