错误EADDRNOTAVAIL与Heroku nodejs服务器
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服务器的差异如下:
- 变量process.env的替换。OPENSHIFT_NODEJS_PORT process.env。OPENSHIFT_NODEJS_IP by process.env.PORT and process.env.IP.
- 我用下面的命令行设置IP变量:
我无法启动我的服务器,它总是崩溃,我不明白为什么,我的服务器的日志是:
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);
相关文章:
- 与域在同一台计算机上运行的NODEJS服务器的CORS错误
- Nodejs服务器在解析之前生成输入表单
- Nodejs服务器:加载资源失败:服务器的响应状态为404(未找到)
- NodeJS服务器在检索部分时返回505/404错误
- 将数据发布到nodejs服务器到客户端
- 引用nodejs服务器中html中的java脚本文件
- 正在将数据发送到nodejs服务器
- NodeJs:如何在EC2实例中查看PM2运行的NodeJS服务器的日志
- 为什么我可以't在nodeJS服务器上接收文件
- nodeJS服务器性能缓慢且不稳定
- 需要将数据从NodeJS服务器发送回JQuery客户端
- 如何从本地文件夹(磁盘存储)读取或获取图像文件,并使用nodejs服务器将其发送到Angularjs
- 在nodejs服务器上提供文件的更好方法,而不是if/else
- 如何在 NodeJS 服务器中解析 ajax 发送的数组/对象
- 在 nodejs 服务器端运行传单
- 当我尝试在 couchbase nodejs 服务器上运行简单的测试时,我收到“不正确的参数”错误
- Yeoman 应用程序 - 使用自定义 Nodejs 服务器
- JavaScript 在 nodeJS 服务器上导致错误
- Nodejs 服务器端调试
- 将数据从 Java 客户端发送到 NodeJS 服务器