用node-postgres查询postgres数据库

每次查询数据库时,是否需要使用pg.connect()? 在查看了githhub页面和wiki之后,这些例子在pg.connectcallback中显示了一个查询(注释来自于github示例,我没有写它们)

//this initializes a connection pool //it will keep idle connections open for a (configurable) 30 seconds //and set a limit of 20 (also configurable) pg.connect(conString, function(err, client, done) { if(err) { return console.error('error fetching client from pool', err); } client.query('SELECT $1::int AS number', ['1'], function(err, result) { //call `done()` to release the client back to the pool done(); if(err) { return console.error('error running query', err); } console.log(result.rows[0].number); //output: 1 }); }); 

评论是混乱,因为它听起来像pg.connect()正在创build一个新的客户端池与每个调用显然是低效的。 我在创build客户端的文档中看到了其他示例,但是我想使用客户端池。

是的,pg.connect是推荐的做事方式。 如github页面所述: https : //github.com/brianc/node-postgres 。 它不会为每个请求创build一个池,而是一个新的请求将创build一个“池”,并将所有后续查询添加到该连接,直到超时,30秒。 //它将保持30秒空闲连接的打开(可configuration)所以当应用程序没有被使用时没有连接,但是一旦你每秒得到几个查询,它们都在这个连接上排队。 超时和排队的数量可以改变。