无法从不同的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:
免费版更适合快速testing,而不是在生产环境中暴露服务的明确方式,因为每次重新启动ngrok时,都会给您一个新的用户 – 恶意url。
其他可能的问题
- 这也可能是你需要添加一个例外的防火墙(如果在Windows上)。
要添加到Emile的答案,我会检查出ngrok这是一个非常棒的工具,可以为您的本地机器上的端口生成一个可公开访问的URL。
这是我的好友写的一篇很好的博客文章 。