首页 > 解决方案 > 池上的每个查询都在连接时触发

问题描述

我现在开始使用 PostgreSQL,我想在客户端和数据库之间建立持久连接,所以我不需要在每个查询上创建和完成连接。我发现 Pool 是更好的方法,所以我的代码最终是这样的:

const { Pool } = require('pg');

const dbConfig = {
    user: '#####################',
    password: '##########',
    database: '#########',
    host: '############',
    port: '####',
};

let pool = new Pool(dbConfig);
pool.connect();
pool.on('connect', (client) => {
    console.log('Connection Created')
});

function query(text) {
    return new Promise(((resolve, reject) =>{
        pool.query(text)
            .then((result) => resolve(result.rows))
            .catch(err => reject(err));
    }))
}

module.exports = {
    query: query
};

为什么每次我调用查询时都会触发我的“已创建连接”?即使我使用 pool.connect()查询本身创建了一个连接,它不应该给我一个错误说还没有创建连接吗?最后,通过不必在每个查询上创建连接来减少查询时间的最佳方法是什么?

谢谢你的时间=)

标签: sqlnode.jspostgresqlpgnode-postgres

解决方案


推荐阅读