【问题标题】:PostgreSQL node server connecting to local pg rather than cloud (digitalocean)PostgreSQL 节点服务器连接到本地 pg 而不是云(digitalocean)
【发布时间】: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


【解决方案1】:

所以问题是 .env 变量没有正确安装在 data.js 配置上,这意味着它们没有定义,因此节点 pg 会自动尝试连接到本地 pg。

在 data.js 上插入 dotenv 包后,它就可以工作了。

【讨论】:

    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多