Node.js Heroku PostgreSQL-无法发送SSL协商数据包:资源暂时不可用

Node.js Heroku PostgreSQL-无法发送SSL协商数据包:资源暂时不可用,node.js,postgresql,heroku,Node.js,Postgresql,Heroku,我正在我的一个NodeJS应用程序中使用Heroku的Postgres插件。代码似乎正常工作,但使用模块与数据库的任何连接都会挂起,并且不会做出成功或失败的响应 为了调查该问题,我尝试使用pgcli通过终端连接到数据库,但出现以下错误: 无法发送SSL协商数据包:资源暂时不可用 进一步详情: Heroku的控制台显示数据库运行正常 上次我使用数据库时(大约3个月前),它工作得非常好 使用与预期相同的附加组件创建的任何新数据库 任何帮助都将不胜感激 转到heroku设置,查找您的环境变量 找到

我正在我的一个NodeJS应用程序中使用Heroku的Postgres插件。代码似乎正常工作,但使用模块与数据库的任何连接都会挂起,并且不会做出成功或失败的响应

为了调查该问题,我尝试使用
pgcli
通过终端连接到数据库,但出现以下错误:

无法发送SSL协商数据包:资源暂时不可用

进一步详情:

  • Heroku的控制台显示数据库运行正常
  • 上次我使用数据库时(大约3个月前),它工作得非常好
  • 使用与预期相同的附加组件创建的任何新数据库
任何帮助都将不胜感激

  • 转到heroku设置,查找您的环境变量
  • 找到数据库_URL变量,复制其值
  • 转到您的项目add.env文件并在那里添加环境变量
  • 安装并遵循环境模块上的说明。例如
  • 添加您的连接配置
  • .env

    DATABASE_URL=verylongstring
    
    index.js

    require('dotenv').config()
    
    const pg = require('pg'
    
    const pgPool = new pg.Pool({
      connectionString: process.env.DATABASE_URL,
      ssl: {
        rejectUnauthorized: false
      }
    })
    
    如果您使用github或其他服务存储代码,请确保不要将.env文件发送给您,因为它仅用于本地开发。Heroku在你的应用程序中有环境变量

    .gitignore


    .env

    感谢您的回复。然而,这正是我在代码方面所做的。这适用于我使用的任何数据库URL,但我尝试连接的那个除外。据我所知,问题出在数据库本身,而不是代码。您是否检查了连接字符串是否已更改?heroku中可能有一个新的数据库连接字符串。我检查过了,它在几个月内保持不变,当我回来时,发生了这种情况。我已尝试将
    pg
    升级到最新版本,但仍然没有帮助。是否尝试通过pgAdmin4之类的客户端进行连接?我尝试使用DBeaver。响应为
    用户没有连接权限