无法从不同的networkingexpress.js进行连接

我正在尝试使用node.js和express.js。

当我尝试从我的networking中的任何一台计算机连接到我的Web服务器时,它可以正常工作,但是当我尝试从外部networking连接时,连接超时。

var app = require('express')(); var http = require('http').Server(app); app.get('/', function(req, res) { res.send("Hello World"); }); http.listen(3000, '0.0.0.0', function() { console.log("Listening on port 3000!"); }); 

我刚刚testing了您的代码,并且可以通过导航到我的本地networking外部访问服务器:

HTTP://173.0 [我] [IP]:3000

所以代码是正确的。 这可能是你需要打开端口3000到外面的世界。 这是如何完成的。

通过你的路由器pipe理界面

这是我的例子:

单端口转发

其中192.168.1.130是PC的本地IP,我正在运行http服务器。

不要忘记点击该界面中的保存设置button来应用更改。

使用类似ngrok的工具( eddiezane提到)

通过他们的网站安装ngrok,或者不用离开命令提示符,使用ngrok节点包装器。

 npm install ngrok -g 

启动您的http服务器,然后运行:

 ngrok http 3000 

转到Forwarding前面的一个url:

ngrok http转发端口3000

免费版更适合快速testing,而不是在生产环境中暴露服务的明确方式,因为每次重新启动ngrok时,都会给您一个新的用户 – 恶意url。

其他可能的问题

  • 这也可能是你需要添加一个例外的防火墙(如果在Windows上)。

要添加到Emile的答案,我会检查出ngrok这是一个非常棒的工具,可以为您的本地机器上的端口生成一个可公开访问的URL。

这是我的好友写的一篇很好的博客文章 。