Я тестую додаток (сподіваюсь, що він працює на 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, оскільки мені потрібно запустити вузол як root, щоб прив’язатись до тих певних портів. Я не знаю, чому це відбувається, але, використовуючи sudo це виправляє. Однак це не пояснює, як би я це виправити на Heroku. Немає способу запустити як root на Heroku, так як я можу слухати порт 80?