我有一台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上运行?
几个月前我最后一次尝试时,我感觉像是在工作,但现在却不起作用,我不知道为什么。我尝试使用其他端口并重新启动计算机,但没有任何改变。
编辑:我已经看过Google演示了端口转发应该在此处自动运行的Google演示:https://youtu.be/pRlh8LX4kQI?t=1160-但这似乎不适合我。
编辑2:如果我用ip addr show | grep inet
找到了我的容器的IP(对我来说是100.115.92.199),然后尝试在端口8080上工作。另外,我在Reddit上发现有人报告相同的问题(link)。因此,我认为自动端口转发已损坏。
答案 0 :(得分:1)
Chrome 80改进了网络接口集成:请尝试更新到测试版
答案 1 :(得分: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}...`));