我是AWS和NodeJS / Express服务器的新手。服务器应连接到AWS RDS Postgress数据库。 我正在MacOS上使用Visual Studio Code开发
尝试运行服务器时出现此错误:
Using ts-node version 8.4.1, typescript version 3.6.3
(node:2377) UnhandledPromiseRejectionWarning: SequelizeConnectionError: password authentication failed for user “userNB”
at connection.connect.err (…node_modules/sequelize/lib/dialects/postgres/connection-manager.js:154:24)
at Connection.connectingErrorHandler (…..node_modules/pg/lib/client.js:191:14)
at Connection.emit (events.js:198:13)
at Connection.EventEmitter.emit (domain.js:448:20)
我将用户名,密码等作为环境变量保存在/.bash_profile
中我的Sequelize代码:
import {Sequelize} from 'sequelize-typescript';
import { config } from './config/config';
onst c = config.dev;
export const sequelize = new Sequelize({
"username": c.username,
"password": c.password,
"database": c.database,
"host": c.host,
dialect: 'postgres',
storage: ':memory:',
});
这种错误与我的NodeJS代码或AWS设置有关吗? 我该如何解决?
答案 0 :(得分:0)
我正在像这样使用续集,它对我有用:
DATABASE_URI=postgresql://username:password@amazonhost:5432/database_name
export const sequelize = new Sequelize(DATABASE_URI);
还请确保您输入了正确的密码,并且尝试连接的IP已列入数据库白名单。您可以使用postgres客户端cli对此进行测试。
让我知道它是否对您有用。
谢谢!
答案 1 :(得分:0)
您缺少创建新实例的序列化参数。像这样创建一个新的sequelize
实例:
const sequelize = new Sequelize('database', 'username', 'password', {
host: your_database_host,
dialect: /* one of 'mysql' | 'mariadb' | 'postgres' | 'mssql' */
});
有关更多信息,请参见续编文档