Dmi*_*hin 27 javascript postgresql backend express
我正在尝试连接到我在 Heroku 中设置的 PostgreSQL 数据库。
const { Sequelize, DataTypes, Model } = require("sequelize");
// DB Configuration
const sequelize = new Sequelize({
database: "[wont'd show db]",
username: "[won't show username]",
password: "[won't show password]",
host: "ec2-54-221-195-148.compute-1.amazonaws.com",
port: 5432,
dialect: "postgres",
dialectOptions: {
ssl: true,
},
});
Run Code Online (Sandbox Code Playgroud)
这就是我得到的输出:
SequelizeConnectionError:自签名证书
Che*_*yDT 70
这是由于node-postgres版本 8 中的(意外)重大更改(请参阅此 GitHub 问题)。
解决方案是传递rejectUnauthorized: false给sequelize连接参数,如GitHub 用户 jsanta 所述:
const sequelize = new Sequelize({
database: "[wont'd show db]",
username: "[won't show username]",
password: "[won't show password]",
host: "ec2-54-221-195-148.compute-1.amazonaws.com",
port: 5432,
dialect: "postgres",
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false // <<<<<<< YOU NEED THIS
}
},
});
Run Code Online (Sandbox Code Playgroud)
就我而言,上述方法都不起作用,我使用连接字符串方法来应用 pg 配置,所以我设置了查询参数,sslmode=no-verify并且它起作用了
例子
postgres://myuser:mypassword@myhost:5432/mydatabasename?sslmode=no-verify
Run Code Online (Sandbox Code Playgroud)