【发布时间】:2017-12-19 16:37:43
【问题描述】:
如何使用NodeJS创建从EC2到远程RDS(PostgreSQL)的连接并查询?
我有此代码,但目前无法使用(包括密码的连接字符串应该是什么样子?):
var pg = require('pg');
var conString = "postgres://username:@db.us-east-2.rds.amazonaws.com:5432/testdb";
var client = new pg.Client(conString);
client.connect();
var query = client.query("SELECT * FROM t1");
//fired after last row is emitted
query.on('row', function(row) {
console.log(row);
});
query.on('end', function() {
client.end();
});
【问题讨论】:
-
如果我没记错的话,你需要密码:
postgres://username:password@db.us-east-2.rds.amazonaws.com:5432/testdb -
这工作..谢谢!我们是否需要在最后以某种方式关闭连接? (或采用上述方法自动)
-
我建议不要使用裸 url - 请参阅此处的池示例和配置:github.com/brianc/node-postgres#pooling-example。注意设置
idleTimeoutMillis会自动关闭一个超时的客户端。 -
是的,您需要明确关闭连接,否则您的 Postgres 将很快达到最大连接数 -- 请使用
select * from pg_stat_activity;检查当前会话。 -
太好了,感谢您的帮助.. @randnum - 我开始检查'pooling-example'。您知道这行代码是否可以简单地替换为常规 SQL 查询而不是参数化? "client.query('SELECT $1::text as name', ['brianc'], function (err, result) {"
标签: node.js postgresql amazon-rds