如何使用 node-postgres 包在 node.js 中动态创建 postgreSQL 连接池并导出它们以供使用
How to dynamically create postgreSQL connection pools in node.js using the node-postgres package and export them for usage
我有一个应用程序,我需要为订阅使用该应用程序的新公司创建一个新数据库。所以我正在维护一个主数据库,用于存储这家公司的列表及其各自的数据库名称。现在当新公司需要使用这个新订阅的应用程序时,我需要为他们的数据库创建一个新的 Pool
以供使用。如何以编程方式创建它并将其导出到 node.js
?
我试了一个方法。我认为池是一个简单的对象,所以我尝试在创建数据库并将其存储在主数据库中后创建它,并在需要时尝试使用该池对象(一个池对我来说就足够了,我不想断开连接池,因为它应该 运行 24/7,这就是我存储它的原因)。但是当我尝试连接到它时失败并出现以下错误语句
TypeError: myPool.connect is not a function
因为一旦我将它作为 jsonb 存储在 masterdb 中,它就不再是一个池。
关于如何解决这个问题的建议会有所帮助。
// eg. poolBuilder
const { Pool } = require('pg')
const pools = new Map();
function getPool(companyName){
if(!pools.has(companyName){
pools.set(companyName, new Pool({
host: 'localhost',
user: 'database-user',
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
}))
}
return pools.get(companyName);
}
module.exports.getPool = getPool;
const {getPool} = require("poolBuilder");
const pool = getPool();
我有一个应用程序,我需要为订阅使用该应用程序的新公司创建一个新数据库。所以我正在维护一个主数据库,用于存储这家公司的列表及其各自的数据库名称。现在当新公司需要使用这个新订阅的应用程序时,我需要为他们的数据库创建一个新的 Pool
以供使用。如何以编程方式创建它并将其导出到 node.js
?
我试了一个方法。我认为池是一个简单的对象,所以我尝试在创建数据库并将其存储在主数据库中后创建它,并在需要时尝试使用该池对象(一个池对我来说就足够了,我不想断开连接池,因为它应该 运行 24/7,这就是我存储它的原因)。但是当我尝试连接到它时失败并出现以下错误语句
TypeError: myPool.connect is not a function
因为一旦我将它作为 jsonb 存储在 masterdb 中,它就不再是一个池。
关于如何解决这个问题的建议会有所帮助。
// eg. poolBuilder
const { Pool } = require('pg')
const pools = new Map();
function getPool(companyName){
if(!pools.has(companyName){
pools.set(companyName, new Pool({
host: 'localhost',
user: 'database-user',
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
}))
}
return pools.get(companyName);
}
module.exports.getPool = getPool;
const {getPool} = require("poolBuilder");
const pool = getPool();