ฉันกำลังทดสอบแอพ (หวังว่าจะทำงานกับ heroku แต่มีปัญหาในพื้นที่เช่นกัน) มันทำให้ฉันมีข้อผิดพลาด EACCES เมื่อมันทำงาน http.Server.listen () - แต่มันเกิดขึ้นในบางพอร์ตเท่านั้น
ดังนั้นภายในฉันกำลังทำงาน:
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 กำลังมาเพราะฉันต้องเรียกใช้โหนดเป็นรูทเพื่อผูกเข้ากับพอร์ตเหล่านั้น ฉันไม่รู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น แต่การใช้ sudo แก้ไขมัน อย่างไรก็ตามนี่ไม่ได้อธิบายว่าฉันจะแก้ไขได้อย่างไรใน Heroku ไม่มีทางที่จะรูทเป็น Heroku ได้ฉันจะฟังพอร์ต 80 ได้อย่างไร