Bir uygulamayı test ediyorum (umarım heroku üzerinde çalışıyorum, ancak yerel olarak da sorun yaşıyorum). Http.Server.listen () çalıştırıldığında bana bir EACCES hatası veriyor - ancak yalnızca bazı bağlantı noktalarında gerçekleşiyor.
Yani, yerel olarak koşuyorum:
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 numaralı bağlantı noktasında (veya denediğim diğer 20 bağlantı noktasından) hiçbir şeyim yok, bu yüzden bu işe yarayacak. Tuhaf yanı tam o does bazı limanlarda üzerinde çalışmaya. Örneğin, 3000 numaralı bağlantı noktası mükemmel çalışır.
Buna ne sebep olur?
Güncelleme 1:
Yerel bilgisayarımda EACCES hatasının geldiğini anladım, çünkü bu bağlantı noktalarını bağlamak için düğümü kök olarak çalıştırmam gerekiyor. Bunun neden olduğunu bilmiyorum, ama sudo kullanmak sorunu düzeltir. Ancak bu, Heroku'da nasıl düzelteceğimi açıklamıyor. Heroku'da root olarak çalışmanın bir yolu yok, bu yüzden 80 numaralı bağlantı noktasını nasıl dinleyebilirim?