Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 正在尝试创建可公开访问的AWS Cloud9 URL_Node.js_Express_Amazon Ec2_Aws Cloud9 - Fatal编程技术网

Node.js 正在尝试创建可公开访问的AWS Cloud9 URL

Node.js 正在尝试创建可公开访问的AWS Cloud9 URL,node.js,express,amazon-ec2,aws-cloud9,Node.js,Express,Amazon Ec2,Aws Cloud9,我使用的是AWS Cloud9,这一切都很顺利,但现在我正试图公开我的URL,以便在Postman中发出HTTP请求,我真的很挣扎。我是一个非常初级的全堆栈开发人员,任何帮助都将不胜感激 谢谢, 史蒂文 我正试图正确地遵循以下指南: 具体地说,我进入了第4步,它要求我更改代码中的IP地址。当我将我的节点JS Express应用程序的app.listen IP地址更改为我的EC2实例IP地址时,我得到一个错误 我认为我已经成功地公开了我的EC2实例,只是我的代码没有正确地侦听(这些步骤似乎很容易

我使用的是AWS Cloud9,这一切都很顺利,但现在我正试图公开我的URL,以便在Postman中发出HTTP请求,我真的很挣扎。我是一个非常初级的全堆栈开发人员,任何帮助都将不胜感激

谢谢, 史蒂文

我正试图正确地遵循以下指南:

具体地说,我进入了第4步,它要求我更改代码中的IP地址。当我将我的节点JS Express应用程序的app.listen IP地址更改为我的EC2实例IP地址时,我得到一个错误

我认为我已经成功地公开了我的EC2实例,只是我的代码没有正确地侦听(这些步骤似乎很容易遵循,但我可能错了)

var express = require("express");
var app = express();

app.set("view engine", "ejs"); 

app.get("/", function (req, res){
    res.render("helloWorld");
});


app.listen(8080, '**AWS EC2 instance IP**', function(){
    console.log("Server Has Started!");
});
当我没有在应用程序中指定IP地址时,它可以正常运行。听着,但是我当然只能从同一浏览器中的不同选项卡访问服务器。下面是当我运行包含AWS EC2实例IP的代码时控制台显示的内容:

events.js:174

      throw er; // Unhandled 'error' event

      ^



Error: listen EADDRNOTAVAIL: address not available **AWS EC2 instance IP**:8080

    at Server.setupListenHandle [as _listen2] (net.js:1262:19)

    at listenInCluster (net.js:1327:12)

    at doListen (net.js:1460:7)

    at process._tickCallback (internal/process/next_tick.js:63:19)

    at Function.Module.runMain (internal/modules/cjs/loader.js:832:11)

    at startup (internal/bootstrap/node.js:283:19)

    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

Emitted 'error' event at:

    at emitErrorNT (net.js:1306:8)

    at process._tickCallback (internal/process/next_tick.js:63:19)

    [... lines matching original stack trace ...]

    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

EC2实例没有将其公共IP绑定到IP堆栈。从公共IP到实例私有IP的转换由Internet网关自动处理


指定实例的私有IP是您实际需要做的事情,尽管这可能不是直观的判断。或者,如指南所示,使用
0.0.0.0
,这意味着“所有接口”

EC2实例没有将其公共IP绑定到IP堆栈。从公共IP到实例私有IP的转换由Internet网关自动处理


指定实例的私有IP是您实际需要做的事情,尽管这可能不是直观的判断。或者,如指南所示,使用
0.0.0
,这意味着“所有接口”。

只需尝试
app.listen(8080,function(){
-确保c9没有在该端口上运行,否则您需要为节点选择另一个端口,并且很明显,错误是说
**AWS EC2实例IP**
不是IP地址。
错误:侦听EADDRNOTAVAIL:address不可用**AWS EC2实例IP**:8080
假定/希望您只是重新编辑了IPapprove我们的输入。是的,这只是我编的IP,我肯定还不擅长安全性哈哈。奇怪的是,你在IP错误中说地址不可用,因为它应该是。我已经转到AWS控制台->安全组->入站并添加了入站规则->类型:自定义TCP规则,协议:TCP,端口运行ge:8080-8082,来源:0.0.0.0/0。这应该已经打开了。我还尝试了app.listen(8081…)来更改端口(假设你的意思是c9在8080上运行),但这也没有解决这个问题。对此有何想法?我从第一天开始使用c9,在亚马逊上市之前为它做了测试,收到了一份100多页的pdf,解释了如何安装,然后很快就离开了它,因为亚马逊破坏了用户体验,只是简单地启动了一个类似旧c9的工作区。我做了一个安装程序一个普通的vps.c9是一个nodejs应用程序,它在一个端口上运行,所以你需要检查它是否冲突。EADDRNOTAVAIL说你输入的ip不存在,这就是为什么我建议不要在你的express中添加一个ip。打开你的EC2,看看它是否在端口上运行,但它们很可能会在随机生成的域上反向代理他们不会给你,它会转发到错误的端口尝试一下app.listen(8080,function(){-确保c9没有在该端口上运行,否则您需要为节点选择另一个端口,并且很明显,错误是说
**AWS EC2实例IP**
不是IP地址。
错误:侦听EADDRNOTAVAIL:address不可用**AWS EC2实例IP**:8080
假定/希望您只是重新编辑了IPapprove我们的输入。是的,这只是我编的IP,我肯定还不擅长安全性哈哈。奇怪的是,你在IP错误中说地址不可用,因为它应该是。我已经转到AWS控制台->安全组->入站并添加了入站规则->类型:自定义TCP规则,协议:TCP,端口运行ge:8080-8082,来源:0.0.0.0/0。这应该已经打开了。我还尝试了app.listen(8081…)来更改端口(假设你的意思是c9在8080上运行),但这也没有解决这个问题。对此有何想法?我从第一天开始使用c9,在亚马逊上市之前为它做了测试,收到了一份100多页的pdf,解释了如何安装,然后很快就离开了它,因为亚马逊破坏了用户体验,只是简单地启动了一个类似旧c9的工作区。我做了一个安装程序一个普通的vps.c9是一个nodejs应用程序,它在一个端口上运行,所以你需要检查它是否冲突。EADDRNOTAVAIL说你输入的ip不存在,这就是为什么我建议不要在你的express中添加一个ip。打开你的EC2,看看它是否在端口上运行,但它们很可能会在随机生成的域上反向代理他们没有给你,而且把它转发到了错误的港口