2013-11-15 64 views
0

在运行在OpenShift上的Node.js中编写测试应用程序,它目前不会启动。EADDRINUSE在OpenShift上使用Node.js

这是我的代码:

#!/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