19

EC2でnode.jsを使用しています

私はタイプする

EXPORT PORT=80

ターミナルで、EXPORTと入力すると正しく保存されることがわかります

しかし、node.jsアプリを次のように実行すると:

...
console.log(process.env);
...

sudoで実行している場合、PORTはオブジェクトにリストされません。

sudo node app.js

sudoでノードを実行しているときにprocess.envオブジェクトからアクセスできるようにPORTを設定するにはどうすればよいですか?

4

2 に答える 2

24

変数を設定process.envするには、次のコードを使用します。

sudo PORT=80 node server.js

もちろん、複数のprocess.env変数を設定できます。

sudo PORT=80 HOST=localhost node server.js

通常、EXPORTあまりにも動作するはずです。ただしsudo、独自の環境を作成し、プログラムを として起動しますroot。したがって、 の環境に追加PORTするかsudo、独自の環境を保持するように強制する必要があります。

sudoの環境を変更するには、変更する必要があります/root/.profile

独自の環境を強制的に保持するには、-Eキーを使用します。

sudo -E node app.js
于 2013-01-11T12:26:28.543 に答える
0

古い投稿であることは承知していますが、ポート 80 で node.js を実行する際に同じ権限の問題がsudoありますsudo PORT=80 node server.js。私がしたことは、ポート 80 のトラフィックを別の許可されたポート (私の場合は 3000) にリダイレクトすることでした。

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
于 2020-12-06T19:19:28.360 に答える