node.js에서 process.env.PORT의 값을 변경하는 방법은 무엇입니까?


답변:


281

유닉스 쉘 프롬프트에서 한 번만 실행하십시오.

$ PORT=1234 node app.js

보다 영구적으로 :

$ export PORT=1234
$ node app.js

에서 윈도우 :

set PORT=1234

Windows PowerShell에서 :

$env:PORT = 1234

4
문서 위해, msdn.microsoft.com/en-us/library/windows/desktop/... 윈도우 사용자를위한
WraithKenny

3
또한 PowerShell 용, 그건 $env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
WraithKenny

VAR_1=value VAR_2=11827 node-> 단순히 공백을 사용하여 동일한 명령에 둘 이상의 변수를 사용하십시오
p4bloch

15

크로스 플랫폼 솔루션 https://www.npmjs.com/package/cross-env를 사용할 수 있습니다

$ cross-env PORT=1234

이것은 아마도 가장 좋은 해결책 일 것입니다. 다른 터미널에서 오류가 발생할 여지가 너무 많습니다. 나는 cross-env이 문제를 추상화하고 발견하기까지 40 분을 보냈습니다 .
adi518 2016 년

8

노드 JS 프로그램을 실행하는 동안 노드 프로세스에서 포트 번호를 설정하려면 아래 명령을 사용하십시오.

set PORT =3000 && node file_name.js

설정된 포트는 코드에서 다음과 같이 액세스 할 수 있습니다

process.env.PORT 

2

편집 : @ sshow의 의견에 따라 포트 80에서 노드 응용 프로그램을 실행하려고하면 아래 방법이 최선의 방법은 아닙니다. 더 좋은 대답은 다음과 같습니다 . 포트 80에서 Node.js를 어떻게 실행합니까?

원래 답변 :

포트 80에서 실행하려면 (또는 env 변수를 보다 영구적으로 설정하려는 경우 ),

  1. bash 프로파일을여십시오 vim ~/.bash_profile
  2. 파일에 환경 변수 추가 export PORT=80
  3. sudoers 구성 파일을여십시오 sudo visudo
  4. 파일에 다음 줄을 정확하게 추가하십시오 Defaults env_keep +="PORT"

이제 실행할 때 sudo node app.js원하는대로 작동합니다.


노드 스크립트를 루트 (sudo)로 실행하지 않는 것이 좋습니다. 을 사용 sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080하고 대신 포트 8080에서 수신 하십시오 . stigok.tumblr.com/post/139320914543/…
sshow

1
네, 그렇습니다. 나는 더 나은 토론에 연결했으며 (이 또한 답변, 면책 조항 )이 접근법을 처음 사용한 후에 배웠습니다.
Kyle Chadha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.