无法使用sequelize连接AWS RDS

问题描述 投票:0回答:1

当我使用此代码时,我可以成功连接到我的 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 有问题?任何支持将不胜感激。

node.js postgresql amazon-web-services sequelize.js
1个回答
0
投票

传递一个

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
对象中,但我会将其留给您。

© www.soinside.com 2019 - 2024. All rights reserved.