【问题标题】:Node.js on MAC: Access a Node.js web server from another computerMAC 上的 Node.js:从另一台计算机访问 Node.js Web 服务器
【发布时间】:2013-01-06 07:34:30
【问题描述】:

我使用 Node.js 众所周知的 http-web-server-example 在我的计算机上构建了一个 Node.js Web 服务器:

var http = require('http');

http.createServer(function(req, res){
    res.writeHead(200, {'content-type': 'text/plain'});
    res.end('It works');
}).listen(3000, '127.0.0.1');

这在运行服务器的计算机上(如预期的那样)有效。

我想从同一 LAN 中的另一台计算机访问服务器。在运行服务器(Apple MacOSX)的计算机终端上使用ifconfig,我得到:192.168.0.6

所以,在我的另一台电脑上,我打开浏览器并连接到http://192.168.0.6:3000,但我得到了:

Oops! Google Chrome could not connect to 192.168.0.6:3000

我的最终目标是能够使用我的智能手机连接到服务器。

欢迎任何帮助。如有必要,请随时询问更多详细信息。

提前致谢:)

【问题讨论】:

    标签: node.js


    【解决方案1】:

    127.0.0.1 只是本地接口。尝试开始监听所有接口:

    var http = require('http');
    
    http.createServer(function(req, res){
        res.writeHead(200, {'content-type': 'text/plain'});
        res.end('It works');
    }).listen(3000, '0.0.0.0');
    

    【讨论】:

    • 哇!非常感谢 Vadim,它可以工作(即使在我的智能手机中)。您能否提供更多详细信息(如果可能)?
    • 您的机器有多个网络接口。您可以通过执行ifconfig 命令查看所有内容。通过设置127.0.0.1,您只将node.js 服务器绑定到环回接口。此界面只能从运行它的机器访问。 0.0.0.0 是所有可用接口的别名。您还可以将您的服务器绑定到另一个选定的接口,例如192.168.0.6,但在这种情况下http://127.0.0.1:3000 应该无法访问它。
    • 谢谢瓦迪姆。现在我更了解它是如何工作的。确实,当我将服务器绑定到192.168.0.6 时,它在访问此地址时有效,但在localhost 时无效。再次感谢。
    • 我的电脑192.168.1.101的node.js中也有一个连接。我在服务器中绑定到这个地址,但仍然无法从另一台计算机访问我的 HTML 页面。有什么帮助吗?
    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 2020-06-01
    • 1970-01-01
    • 2017-07-26
    • 2018-06-16
    相关资源
    最近更新 更多