node.js - 无法使用 Sequelize / NodeJS 作为缺少 sslmode 标记连接到 Heroku postgres DB
问题描述
我正在使用 Heroku / DigitalOcean ("DO") 应用程序托管服务,试图简单地将我的 NodeJS 应用程序连接到 Heroku/DO 数据库。这些服务使用以下内容填充我的环境变量:
DATABASE_URL="postgresql://username:password@url:ip/dbname?sslmode=require"
不幸的是,当我运行 Sequelize 时,我收到以下错误消息:
ConnectionError [SequelizeConnectionError]: no pg_hba.conf entry for host "[my ip address]", user "[db user]", database "[db name]", SSL off
我认为连接字符串可能配置错误,因为我可以清楚地看到它正在尝试通过 ssl 连接。
$ node -v
v15.9.0
解决方案
嗨,我与 Digital Ocean DB PostgreSQL 集群分享我的连接
production: {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_DATABASE,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
dialect: 'postgres',
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false
}
}
}
推荐阅读
- java - tomcat不启动war应用
- python - 如何按单词字符串中的数字对列表进行排序?
- python - 如何使用原始字符串路径从 Pathlib 路径中提取父文件夹?
- python - 为什么 DQNAgent.fit 会向我的输入数据添加额外的维度?
- xcode - 在 mac big sur 上下载和更新 Xcode
- javascript - React Native useEffect - 警告:效果函数不得返回除用于清理的函数之外的任何内容
- node.js - 'users | 类型的参数 undefined' 不能分配给'users' 类型的参数。类型“未定义”不可分配给类型“用户”
- go - 如何反转数组 | 在 golang 中切片而不使用 for 语句
- linux-kernel - 内核编译问题 4.20.17 - Ubuntu 18
- node.js - 如何停止在 nodejs 中使用 child_process.exec() 运行的批处理文件?