2013-11-15 4 views
0

Написание тестового приложения в Node.js, запущенного на OpenShift, и в настоящее время он не запускается.EADDRINUSE с Node.js на OpenShift

Это мой код:

#!/bin/env node 

var http = require('http'); 

var ip = process.env.OPENSHIFT_NODEJS_IP; 
var port = process.env.OPENSHIFT_NODEJS_PORT; 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(ip, port); 
console.log('Server running'); 

Я получаю ошибку

events.js:72 
    throw er; // Unhandled 'error' event 
     ^
Error: listen EADDRINUSE 
at errnoException (net.js:884:11) 
at Server._listen2 (net.js:1003:19) 
at listen (net.js:1044:10) 
at Server.listen (net.js:1104:5) 
at Object.<anonymous> (/var/lib/openshift/52854c6f4382ec071400051d/app-root/runtime/repo/server.js:11:4) 
at Module._compile (module.js:456:26) 
at Object.Module._extensions..js (module.js:474:10) 
at Module.load (module.js:356:32) 
at Function.Module._load (module.js:312:12) 
at Function.Module.runMain (module.js:497:10) 
DEBUG: Program node server.js exited with code 8 

который, кажется, означает, что я не могу привязать к порту. Я нашел различную информацию о том, почему это может быть, но ничто из этого не кажется актуальным - все это связано с разрешениями, но, безусловно, точка process.env.OPENSHIFT_NODEJS_ * есть ли у меня разрешение на привязку к нему?

ответ

4

Это означает, что какой-то другой процесс использует ваш порт process.env.OPENSHIFT_NODEJS_PORT. EACCESS означает отказ в разрешении, а не EADDRINUSE. Попробуйте перейти на неиспользуемые порты, например 8080. Вы можете проверить используемые порты с:

netstat -tulpn 
netstat -tulpn | grep :$OPENSHIFT_NODEJS_PORT //filter by your port 
+0

Доступ запрещен – Tobiq

Смежные вопросы