4

我在 Chrome 79 上有一台 Pixelbook。在我的终端 (Crostini) 中,我运行了一个简单的 Express 应用程序:

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

app.get('/', (req, res) => {
    res.send('Hello!');
});

const PORT = 8080;

app.listen(PORT, () => console.log(`Listening on port ${PORT}...`));

并在浏览器中尝试它,localhost:8080我得到了localhost refused to connect错误。

如果我使用 Angular CLI 工具制作样板 Angular 项目并使用ng serve,它会告诉我它正在监听localhost:4200- 我尝试了它并且它确实有效。

有什么不同?如何让我的应用程序在 localhost 上运行?

几个月前我上次尝试时,我觉得我有这个工作,现在它只是不工作,我不知道为什么。我尝试使用其他端口并重新启动计算机,但没有任何变化。

编辑:我看过谷歌演示,端口转发应该在这里自动工作:https ://youtu.be/pRlh8LX4kQI?t=1160 - 但它似乎不适合我。

编辑2:如果我找到我的容器的IP ip addr show | grep inet(对我来说是100.115.92.199)并在端口8080尝试它可以工作。另外,我在 Reddit 上发现有人报告了同样的问题(链接)。所以我认为自动端口转发被打破了。

4

2 回答 2

1

Chrome 80 改进了网络接口集成:尝试更新到 beta 版本

  1. 前往设置
  2. 在左侧面板的底部,选择关于 Chrome 操作系统。
  3. 选择“详细构建信息”或“其他详细信息”
  4. 在“频道”旁边,选择更改频道。
  5. 选择“测试版”
于 2020-01-09T22:18:05.623 回答
1

我在 Chrome 79 上也有一个 Pixelbook。您的代码将在 Firefox 上运行。要使其在 Chrome 浏览器上运行,您必须将host参数传递给app.listen()

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

app.get('/', (req, res) => {
    res.send('Hello!');
});

const PORT = 8080;
const HOST = 'localhost';

app.listen(PORT, HOST, () => console.log(`Listening on port ${PORT}...`));
于 2020-01-19T02:11:57.363 回答