You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Digital Ocean绑定变量引用数据库属性?解决NodeJS连Postgres超时

DigitalOcean App Platform连接PostgreSQL超时问题排查:环境变量绑定错误

问题背景

我在DigitalOcean上托管了PostgreSQL数据库集群和App Platform服务,尝试将Node.js应用连接到PostgreSQL时出现连接超时错误。目前需要确认是否正确使用了可绑定的应用环境变量,怀疑是变量未解析导致CA证书无法获取,进而引发超时问题。

相关信息

  • 数据库集群名称:demo
  • 数据库连接池名称:Demo
  • 默认数据库名称:defaultdb
  • App Platform应用名称:demo1

环境变量测试情况

我尝试了多种变量组合,但执行echo $MY_VAR命令时,变量均未被解析,仍显示原始绑定语法:

# 仅使用数据库集群名称测试
apps@client:~$ echo $TEST1
${demo.HOSTNAME}

# 使用_self(当前应用上下文)测试
apps@client:~$ echo $TEST2
${_self.HOSTNAME}

# 使用<数据库集群名>.<连接池名>.<环境变量>格式测试
apps@client:~$ echo $TEST3
${demo.Demo.HOSTNAME}

# 使用<应用名>.<连接池名>.<环境变量>格式测试
apps@client:~$ echo $TEST4
${demo1.Demo.HOSTNAME}

我想知道在DigitalOcean应用控制台执行echo $DB_HOSTNAME时,能正确输出数据库主机名的语法是什么。

Node.js PostgreSQL配置示例

我希望通过数据库应用环境变量实现配置,代码中的PostgreSQL配置如下:

// PostgreSQL配置示例
const postgresConfig = {
   user: process.env.PG_USER,
   password: process.env.PG_PASSWORD,
   host: process.env.PG_HOST,
   database: process.env.PG_DATABASE,
   port: process.env.PG_PORT,
   ssl: {
      require: true,
      rejectUnauthorized: true,
      ca: process.env.PG_CA_CERT,
   },
};

错误信息

执行PostgreSQL查询时出现以下超时错误:

Error: connect ETIMEDOUT 10.x.y.z:25061
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1278:16) {
  errno: -110,
  code: 'ETIMEDOUT',
  syscall: 'connect',
  address: '10.x.y.x',
  port: 25061
}

内容的提问来源于stack exchange,提问作者Gregg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:05:21