【发布时间】:2022-01-25 16:10:04
【问题描述】:
您好,我正在尝试使用节点基本服务器连接到数字海洋上的 Postgres,但是每次我点击 localhost:3001 等 api 端点时,我都没有尝试连接到 DO 上的 pg,而是连接或尝试连接在本地连接到 pg。
凭据和配置参数都指向数字海洋 pg,所以我不确定它为什么要尝试连接到我 Mac 上的本地 pg。我有一台 M1 Mac。
另一个问题是我是否需要在本地安装 pg 才能连接到 DO pg?我删除了本地 pg 卸载所有内容并尝试连接到 DO pg 但它不起作用,我收到一个错误:
Error: connect ECONNREFUSED 127.0.0.1:5432
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
errno: -61,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
}
我问的原因是我在电子节点应用程序上有几乎完全相同的逻辑,相同的配置和参数指向 DO pg,我可以连接和获取数据等它可以在安装本地 pg 或卸载 pg 的情况下工作在本地,所以我真的很困惑。
在节点服务器上,我使用的是 node pg npm 包,它在我的电子应用程序上运行良好,无需安装本地 pg。
请告诉我。
【问题讨论】:
-
您的配置有问题。由于我们看不到它,所以我们不能说它是什么。
-
@jjanes 您的意思是节点 pg 中的连接配置或 PostgreSQL 系统文件夹中的某些文件? Node pg Config 类似于电子应用程序,它工作得非常好。我不明白的原因是为什么即使完全卸载节点服务器仍然指向本地pg。
-
节点或电子配置。你说它们相似,但这不等于相同。如果您没有在本地安装和运行 PostgreSQL 服务器,这并不意味着您无法尝试在本地连接到它,而只是意味着您无法在该尝试中成功。 Node Pg 有自己的 PostgreSQL“有线协议”的内部实现,这意味着它不需要安装 PostgreSQL 服务器或任何外部客户端二进制文件来建立(或尝试建立)连接。
-
@jjanes 似乎问题是我的 .env 变量在我的节点服务器上没有正常运行,而在 elctron 应用程序中我让它们运行良好,唯一的区别是在电子应用程序中我我正在使用 doenv 包。所以问题是我是否必须在节点服务器中使用 dotenv 包才能正确加载 .env 变量?
标签: node.js postgresql digital-ocean