无法从其他计算机访问macOS High Sierra上的Nodejs / Express Server

时间:2018-06-30 10:04:32

标签: node.js macos express server

我在MacOS High Sierra上启动了一个简单的快递服务器。 localhost:3000127.0.0.1:3000工作正常。但是,当我从另一台计算机通过http://192.168.x.x:3000访问服务器时,没有得到任何响应(ERR_EMPTY_RESPONSE)。

我在另一台MacBook(MacOS Sierra)和Windows计算机上测试了服务器,一切正常。

所以我想MacOS High Sierra出了点问题。

任何帮助都将受到欢迎。预先感谢。

这里是code

const express = require('express')
const app = express()

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(3000, () => console.log('Example app listening on port 3000!'))

2 个答案:

答案 0 :(得分:0)

更新MacOS

我尝试重新安装节点npm,更改共享设置,但是它们都不起作用。

最后,我更新了MacOS(10.13.4-> 10.13.5),现在其他计算机可以像超级按钮一样访问我的服务器。

----------更新-------------

几天(快乐)后,问题再次出现。

幸运的是,现在我很确定ESET EndPoint Security是问题所在,因为它是我安装的最后一个应用程序。 因此,我打开ESET防火墙并创建一个新规则,该规则允许本地网络地址通过TCP&UDP连接。 服务器再次像魅力一样工作。

希望这对其他人有帮助。

答案 1 :(得分:-1)

请参阅https://nodejs.org/en/docs/guides/getting-started-guide/

  

安装完Node后,让我们尝试构建第一个Web服务器。创建一个名为“ app.js”的文件,并粘贴以下代码:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
  

然后,使用节点app.js运行Web服务器,访问http://localhost:3000,您将看到一条消息“ Hello World”