[英]Error EADDRNOTAVAIL with Heroku nodejs server
我已经在OpenShift上开发了一个nodejs服务器,现在我正尝试在Heroku上为新项目制造相同类型的服务器。
这是我的服务器的最少代码:
var http = require('http');
var port = process.env.PORT || 8080;
var address = process.env.IP || '127.0.0.1';
console.log(address);
console.log(port);
var server = http.createServer(function(req, res)
{
res.writeHead(200, { 'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*' });
res.write(JSON.stringify({ valid: true }));
res.end();
});
server.listen(port, address);
与我的OpenShift服务器的区别是:
我无法启动服务器,它总是崩溃,并且我不明白为什么,服务器的日志为:
MYSERVERADDRESS.com
41184
events.js:154
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL MYSERVERIP:41184
at Object.exports._errnoException (util.js:893:11)
at exports._exceptionWithHostPort (util.js:916:20)
at Server.__dirname.Server.Server._listen2 (net.js:1233:19)
at net.js:1391:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:63:16)
at listen (net.js:1282:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:82:10)
我的猜测是,您的Heroku服务器将没有(外部)服务器地址作为其(内部)IP号(外部IP地址很可能会在Heroku网络堆栈中更早地终止),这意味着您无法显式侦听(基本上就是EADDRNOTAVAIL
意思)。
相反,请不要使用任何地址来收听:
server.listen(port);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.