javascript - 错误:连接到本地主机上的任何内容时连接 ECONNREFUSED 127.0.0.1
问题描述
我尝试从 node.js 后端连接到在 localhost 上运行的不同服务器。每个服务器都在一个 docker 容器中运行。当我执行 http 请求时,当连接到本地主机上的任何内容时,我收到“错误:连接 ECONNREFUSED 127.0.0.1:80”或“错误:连接 ECONNREFUSED 错误:连接 ECONNREFUSED 127.0.0.1:4200”。我的代码如下所示:
const http = require('http');
const xy = http.get('http://localhost/path', (r) =>{
console.log(r);
});
xy.on('error', e => {
console.log(e);
});
const xz = http.get('http://localhost:4200', (r) =>{
console.log(r);
});
xz.on('error', e => {
console.log(e);
});
我不明白,为什么它不起作用。浏览器中的相同请求确实有效。连接到 google.com 等不同的 URL 也可以。这是 netstat -na 的输出:
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4222 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4200 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
有人有想法吗?
问候
解决方案
localhost
容器内是指容器本身,而不是您的笔记本电脑/服务器。所以其他服务没有在那里运行。
如果你想从一个容器连接到另一个容器,你应该使用容器的名称而不是 localhost。
此外,容器需要在同一个网络中
推荐阅读
- javascript - 如何将日期/时间编码到 WIX 站点嵌入功能中?
- terminal - 为什么每次打开新终端时都会出现 conda 环境错误?
- ffmpeg - FFMPEG Drawtext 时间
- python - 引起:java.lang.NoClassDefFoundError: org/apache/spark/internal/Logging$class
- php - 解析字符串中的算术
- swift - 快速在 UIButton 上显示图像和标题
- python - 在python中以微米为单位设置像素比例
- android - expo-device 在独立应用程序上返回 null
- leaflet - 传单中的半圆形标记
- nginx - Nginx 读取 secret 和 webhook 标头