使用sudo运行节点时使用EXPORT设置process.env变量

got*_*ops 18 sudo node.js

我在EC2上使用node.js.

我打字

EXPORT PORT=80
Run Code Online (Sandbox Code Playgroud)

在终端,我看到它在我输入EXPORT时正确保存它

但是当我使用以下命令运行我的node.js应用程序时:

...
console.log(process.env);
...
Run Code Online (Sandbox Code Playgroud)

当我使用sudo运行它时,PORT未在对象中列出:

sudo node app.js
Run Code Online (Sandbox Code Playgroud)

如何设置PORT,以便在使用sudo运行节点时可以从process.env对象访问它?

Leo*_*tny 21

要设置process.env变量,请使用以下代码:

sudo PORT=80 node server.js
Run Code Online (Sandbox Code Playgroud)

当然,您可以设置多个process.env变量:

sudo PORT=80 HOST=localhost node server.js
Run Code Online (Sandbox Code Playgroud)

通常,也EXPORT应该工作.但是sudo创建自己的环境,然后启动你的程序root.因此,您应按添加PORTsudo的环境或迫使它保护自己的环境.

要改变sudo环境,你应该修改/root/.profile.

要强制它保留您自己的环境,请使用-E密钥:

sudo -E node app.js
Run Code Online (Sandbox Code Playgroud)