Node.js "Server listening on port 3000",但我无法在浏览器中查看?

Node.js "Server listening on port 3000", but I can't view it in browser?

我正在尝试获取一个简单的节点应用程序 运行ning。它在我的本地主机上运行良好,但是当我试图将它传输到我的云服务器上的 运行 时,它就不起作用了。当我在正确的路径中执行 "node app.js" 时,我得到 console.log Express server started on port %s', server.address().port 并且它还说它是端口 3000(Express 服务器在端口 3000 上启动)。当我将 server.listen 更改为另一个端口时,它显示正确的端口。

现在,当我尝试通过我的域或通过我的 ip(例如 xx.xxx.xx.xx:3000)或我的域(my-domain.com:3000)获取它时 运行ning在这两种情况下它都不起作用。我想我不太明白这个概念,我试图搜索十亿种不同的东西,但我找不到解决我问题的方法。有人可以告诉我,如果我还需要设置其他东西吗?

可能是您的云托管提供商没有开放访问端口。尝试通常打开的端口 80。

很可能您的代码可以正常工作,但您的服务器未配置为允许访问端口 3000。

确认您可以尝试将您的应用程序更改为默认端口 80,并且很可能已启用。

在主机文档中搜索 'enabling or opening ports'

我遇到了同样的问题。在我绞尽脑汁、检查所有 opened/used 端口并尝试各种其他方法之后,我终于发现,由于我使用的是 AWS,因此我实际上必须通过安全组部分为我的 AWS EC2 实例启用该端口。

我必须在端口号 3000 的安全组部分添加一个自定义 TCP 规则,我想将其用于 NodeJS 服务器,之后 NodeJS 服务器开始在端口 3000 上响应。