EC2でnode.jsを使用しています
私はタイプする
EXPORT PORT=80
ターミナルで、EXPORTと入力すると正しく保存されることがわかります
しかし、node.jsアプリを次のように実行すると:
...
console.log(process.env);
...
Sudoで実行している場合、PORTはオブジェクトにリストされません。
Sudo node app.js
Sudoでノードを実行しているときにprocess.envオブジェクトからアクセスできるようにPORTを設定するにはどうすればよいですか?
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
これを永続的に設定する場合:
vim ~/.bash_profile
export PORT=80
Sudo visudo
Defaults env_keep +="PORT"
とまったく同じように次の行をファイルに追加しますこれで、Sudo node app.js
を実行すると、ポートが80に設定された状態で、希望どおりに機能するはずです。