Node.js OpenShift EACCESS 错误

Posted

技术标签:

【中文标题】Node.js OpenShift EACCESS 错误【英文标题】:Node.js OpenShift EACCESS error 【发布时间】:2014-08-17 20:55:28 【问题描述】:

我无法让应用正常启动,不断收到 EACCESS 错误:

Error: listen EACCES

代码如下:

var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(server_port);

app.get('/', function (req, res) 
    res.sendfile(__dirname + '/index.html');
);

io.on('connection', function (socket) 
    socket.emit('news',  hello: 'world' );
    socket.on('my other event', function (data) 
        console.log(data);
    );
);

这里没什么特别的,OpenShift 的 Node 变量的使用方式是正确的。

【问题讨论】:

【参考方案1】:

应该使用server_ip_address。否则,它将使用 OpenShift 上的默认 IP,即 127.0.0.1。更改自:

server.listen(server_port);

到:

server.listen(server_port, server_ip_address);

server.listen(server_port, server_ip_address, function() 
  console.log('%s: Node server started on %s:%d ...',
             new Date(), server_ip_address, server_port);
);

【讨论】:

以上是关于Node.js OpenShift EACCESS 错误的主要内容,如果未能解决你的问题,请参考以下文章

Openshift与Kubernetes的区别

Openshift - 当我访问应用程序时 503 服务暂时不可用

警告!无法停止 Node.js 应用程序?

如何在两个不同的主机中拥有两台服务器(django 和 node.js)并相互通信?

纱线错误“EACCESS:权限被拒绝,scandir'/home/ubuntu/.config/yarn/link'”

异常退出:Windows 10 上的 eaccess