Syl*_*ska 4 javascript postgresql heroku node.js sequelize.js
我正在为数据库连接出错而苦苦挣扎:
Unable to connect to the database: ConnectionError [SequelizeConnectionError]: self signed certificate
Run Code Online (Sandbox Code Playgroud)
在这里你有我使用的代码 - 被注释的部分不起作用,错误仍然出现:
// const pg = require('pg');
// pg.defaults.ssl = true;
// const fs = require('fs');
// const rdsCa = fs.readFileSync(__dirname + '/rds-combined-ca-bundle.pem');
const sequelize = new Sequelize('xxxx', 'xxxxxx', 'xxxxxxxx',{
host: 'xxxxxx.eu-west-1.compute.amazonaws.com',
dialect: 'postgres',
ssl: true,
protocol: "postgres",
logging: true,
dialectOptions: {
ssl: true
}
});
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
Run Code Online (Sandbox Code Playgroud)
该数据库建立在 Heroku 上。
你能帮我解决这个问题吗?
这是由于node-postgres版本 8 中的(意外)重大更改(请参阅此 GitHub 问题)。
解决方案是传递rejectUnauthorized: false给sequelize连接参数,如GitHub 用户 jsanta 所述:
const sequelize = new Sequelize('xxxx', 'xxxxxx', 'xxxxxxxx',{
host: 'xxxxxx.eu-west-1.compute.amazonaws.com',
dialect: 'postgres',
ssl: true,
protocol: "postgres",
logging: true,
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false // <<<<<< YOU NEED THIS
}
}
});
Run Code Online (Sandbox Code Playgroud)
我在这里提交了相同的答案,但我无法将此问题标记为重复并指出它,因为它尚未在那里被投票/接受。
| 归档时间: |
|
| 查看次数: |
2699 次 |
| 最近记录: |