如何在node.js中更改process.env.PORT的值?


Answers:


281

仅运行一次(从unix shell提示符):

$ PORT=1234 node app.js

更永久地:

$ export PORT=1234
$ node app.js

Windows中

set PORT=1234

在Windows PowerShell中

$env:PORT = 1234

4
出于文档考虑,msdn.microsoft.com
zh

3
同样对于Powershell,它是$env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
WraithKenny 2013年

VAR_1=value VAR_2=11827 node->只需在同一命令上使用空格即可使用多个变量
p4bloch 2015年

14

您可以使用跨平台解决方案https://www.npmjs.com/package/cross-env

$ cross-env PORT=1234

这可能是最好的解决方案。不同的终端之间有太多的误差余量。我花了大约40分钟的时间才找到cross-env解决这个问题的方法,然后开始工作。
adi518 '18

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它时,它应该可以正常工作。


建议不要以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
是的,您是对的,我已经链接到一个更好的讨论(我也回答了,免责声明),并且在最初使用此方法后才有所了解。
凯尔·查达
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.