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.