在大多数端口上侦听时,Node.js EACCES错误
我正在测试一个应用程序(希望可以在heroku上运行,但是在本地也有问题)。它在运行http.Server.listen()时给我一个EACCES错误-但它仅在某些端口上发生。 因此,我正在本地运行: joe@joebuntu:~$ node > var h = require('http').createServer(); > h.listen(900); Error: EACCES, Permission denied at Server._doListen (net.js:1062:5) at net.js:1033:14 at Object.lookup (dns.js:132:45) at Server.listen (net.js:1027:20) at [object Context]:1:3 at Interface.<anonymous> (repl.js:150:22) at Interface.emit (events.js:42:17) at Interface._onLine (readline.js:132:10) at Interface._line (readline.js:387:8) at Interface._ttyWrite (readline.js:564:14) 我在900端口(或我尝试过的其他20个端口中的任何一个)上没有任何运行,因此这应该可以工作。奇怪的是它确实在某些端口上工作。例如,端口3000可以正常工作。 是什么原因造成的? 更新1: 我发现在我的本地计算机上,EACCES错误即将来临,因为我必须以root用户身份运行节点才能绑定到这些特定端口。我不知道为什么会这样,但是使用sudo可以解决。但是,这并不能解释我将如何在Heroku上修复它。在Heroku上无法以root用户身份运行,那么如何在80端口监听?