node.jsのprocess.env.PORTの値を変更するにはどうすればよいですか?


回答:


281

(UNIXシェルプロンプトから)1回だけ実行する場合:

$ PORT=1234 node app.js

より永続的に:

$ export PORT=1234
$ node app.js

Windows

set PORT=1234

Windows PowerShellの場合

$env:PORT = 1234

4
ドキュメントのために、msdn.microsoft.com
en

3
$env:PORT = 80
Powershell

VAR_1=value VAR_2=11827 node->スペースを使用して、同じコマンドで複数の変数を使用します
p4bloch

15

クロスプラットフォームソリューションを使用できますhttps://www.npmjs.com/package/cross-env

$ cross-env PORT=1234

これはおそらく最良の解決策です。さまざまな端末でのエラーには、余りにも多くのマージンがあります。私はcross-envこの問題を抽象化して見つけ、うまくいくまで40分ほど費やしました。
adi518

8

以下のコマンドを使用して、ノードJSプログラムの実行中にノードプロセスのポート番号を設定します。

set PORT =3000 && node file_name.js

設定されたポートには、コードで次のようにアクセスできます。

process.env.PORT 

2

編集: @sshowのコメントに従って、ノードアプリをポート80で実行しようとしている場合、以下はそれを行うための最良の方法ではありません。より良い答えは次のとおりです:ポート80でNode.jsを実行するにはどうすればよいですか?

元の回答:

これをポート80で実行する場合(または環境変数をより永続的に設定する場合)、

  1. bashプロファイルを開きます vim ~/.bash_profile
  2. ファイルに環境変数を追加します export PORT=80
  3. sudoers設定ファイルを開きます sudo visudo
  4. 次の行をそのままファイルに追加します Defaults env_keep +="PORT"

これで実行するsudo node app.jsと、期待どおりに動作するはずです。


ノードスクリプトをroot(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.