当我使用此代码时,我可以成功连接到我的 AWS RDS postgre
import pg from "pg";
import dotenv from "dotenv";
dotenv.config();
(async () => {
try {
const client = new pg.Client({
host: process.env.PG_HOST,
port: process.env.PG_PORT,
user: process.env.PG_USER,
password: process.env.PG_PASSWORD,
database: process.env.PG_DATABASE,
ssl: true,
});
await client.connect();
const res = await client.query("SELECT $1::text as connected", [
"Connection to postgres successful!",
]);
console.log(res.rows[0].connected);
await client.end();
} catch (error) {
console.error("Error occurred:", error);
}
})();
但现在我想使用sequelize,我尝试这个代码
import "dotenv/config.js";
import Sequelize from "sequelize";
const dbConfig = {
HOST: process.env.PG_HOST,
USER: process.env.PG_USER,
PASSWORD: process.env.PG_PASSWORD + "",
DB: process.env.PG_DATABASE,
PORT: process.env.PG_PORT,
dialect: "postgres",
// ssl: true,
ssl: {
rejectUnauthorized: false,
},
};
console.log(dbConfig.USER);
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
host: dbConfig.HOST,
port: dbConfig.PORT,
dialect: dbConfig.dialect,
});
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
export default db;
我收到错误:“无法连接到数据库!ConnectionError [SequelizeConnectionError]:主机“118.70.42.38”、用户“postgres”、数据库“My_first”没有 pg_hba.conf 条目,没有加密”
和
“原始:错误:主机“118.70.42.38”、用户“postgres”、数据库“My_first”没有 pg_hba.conf 条目,未加密”。
我不确定为什么会发生这种情况。也许 Sequelize 有问题?任何支持将不胜感激。
传递一个
dialectOptions
对象过去对我有用,看起来像:
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
host: dbConfig.HOST,
port: dbConfig.PORT,
dialect: dbConfig.dialect,
dialectOptions: { //< Add this
ssl: {
require: true,
rejectUnauthorized: false
}
}
});
这可以移至您的
dbConfig
对象中,但我会将其留给您。