我使用节点pg包pg
,尝试连接到在AWS-RDS中创建的PostgreSQL数据库。我相信在创建实例时不会给数据库命名,请注意实例不同于数据库。当尝试使用Client
中的Pool
或pg
连接时,我的语法是
const client = new Client({
host : <<RDS ENDPOINT>>,
user : <<RDS DB USERNAME>>,
password : <<RDS DB PASSWORD>>,
port : <<RDS DB PORT>>
});
client.connect()
.then(data => {
console.log('connected');
})
.catch(err => {
console.log(err);
})
但是每次我返回error: database <<linux user name>> does not exist
。
现在创建一个不同的PostgreSQL实例并为数据库提供名称,我可以在database
对象配置中添加一个Client
道具,并且一切正常,并且返回控制台日志{ {1}}。
所以我的问题是,如何在connected
配置中不提供database
道具的情况下连接到AWS-RDS上的数据库?
为Client
道具提供空字符串将被我的Linux用户名覆盖
答案 0 :(得分:2)
使用node-postgres
软件包,您需要在“客户端/池”配置对象中提供数据库属性。如果您的PostgreSQL数据库没有名称,请说如果您是使用AWS-RDS创建的,则该数据库名称将默认为postgres
。只需向数据库属性提供postgres
即可解决未命名数据库的所有问题。
const client = new Client({
host : <<RDS ENDPOINT>>,
user : <<RDS DB USERNAME>>,
password : <<RDS DB PASSWORD>>,
port : <<RDS DB PORT>>,
database : 'postgres' // supplying a database name with `postgres`
});