Javascript 无法从其他网络连接express.js

Javascript 无法从其他网络连接express.js,javascript,node.js,express,networking,Javascript,Node.js,Express,Networking,我正在试验node.js和express.js 当我尝试从网络中的任何计算机连接到web服务器时,它都可以工作,但当我尝试从外部网络连接时,连接超时 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', functio

我正在试验node.js和express.js

当我尝试从网络中的任何计算机连接到web服务器时,它都可以工作,但当我尝试从外部网络连接时,连接超时

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!");
});

我刚刚测试了您的代码,可以通过导航到以下位置从本地网络外部访问服务器:

所以代码是正确的。您可能需要向外部世界打开端口
3000
。下面是如何完成的

通过路由器管理界面 这是我的例子:

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

不要忘记单击该界面中的保存设置按钮来应用更改

使用工具(如所述) 使用ngrok节点包装器,通过其网站或不离开命令提示符安装ngrok

npm install ngrok -g
启动http服务器,然后运行:

ngrok http 3000
导航到
转发
前面的url之一:

免费版本更多的是用于快速测试,而不是作为在生产环境中公开服务的最终方式,因为每次重新启动ngrok时,都会向您提供一个新的url

其他可能的问题
  • 也可能是您需要向防火墙添加异常(如果在windows上)

为了补充Emile的答案,我想看看哪一个工具非常棒,可以为本地机器上的端口生成一个可公开访问的URL


这是我的好友写的一个很好的例子。

当代码无法在上面执行时,请使用代码示例,而不是JS/html/css片段。@EmileBergeron抱歉,谢谢,您可能只需要从路由器管理界面打开端口3000,然后将其转发到服务器。@EmileBergeron我将路由器转发到端口3000,这是同一件事吗?你为什么使用8888端口,我应该使用3000端口吗?@MooShoeGaming我更新了图像以反映确切的变化needed@MooShoeGaming最好的感谢就是接受答案!就是你!那真的很有帮助!