mysql池ojbect的PoolConfig的Access数据库成员
我想从池对象中获取一个数据库,并为其指定一个不同的数据库名称 我一直在使用此函数获取池。但是这个函数每次都返回一个配置不同的新池mysql池ojbect的PoolConfig的Access数据库成员,mysql,node.js,Mysql,Node.js,我想从池对象中获取一个数据库,并为其指定一个不同的数据库名称 我一直在使用此函数获取池。但是这个函数每次都返回一个配置不同的新池 function getPool(database_name){ if(database_name) config.database = database_name; var pool = require('mysql').createPool(config); console.log(pool); return poo
function getPool(database_name){
if(database_name)
config.database = database_name;
var pool = require('mysql').createPool(config);
console.log(pool);
return pool;
}
我想要这样的东西。因此,它返回具有不同配置的相同池
var pool = require('mysql').createPool(config);
function getPool(database_name){
if(database_name)
pool.config.PoolConfig.database = database_name;
console.log(pool);
return pool;
}
在打印出池对象时,尝试访问对象的数据库参数来修改它。但是没有成功。如何访问此对象的数据库元素?
这是目标
Pool {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
config:
PoolConfig {
acquireTimeout: 10000,
connectionConfig:
ConnectionConfig {
host: 'localhost',
port: 3306,
localAddress: undefined,
socketPath: undefined,
user: 'root',
password: 'password',
database: 'mydatabasename',
connectTimeout: 10000,
insecureAuth: false,
supportBigNumbers: false,
bigNumberStrings: false,
dateStrings: false,
debug: undefined,
trace: true,
stringifyObjects: false,
timezone: 'local',
flags: '',
queryFormat: undefined,
pool: [Circular],
ssl: false,
multipleStatements: false,
typeCast: true,
maxPacketSize: 0,
charsetNumber: 33,
clientFlags: 455631 },
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0,
database: 'eventx' },
_acquiringConnections: [],
_allConnections: [],
_freeConnections: [],
_connectionQueue: [],
_closed: false }
pool connection : [object Object]
使用以下代码创建pool.js文件
const mysql = require("mysql");
var dbConfigMySql = {
host: "127.0.0.1",
user: "user",
password: "password",
port: "3306",
connectionLimit: 15,
queueLimit: 30,
acquireTimeout: 1000000
}
const pool = mysql.createPool(dbconifg);
function getPool(database_name){
pool.config.connectionConfig.multipleStatements = false;
if(database_name){
pool.config.connectionConfig.database = database_name;
return pool;
}
else{
delete pool.config.connectionConfig.database;
return pool;
}
}
exports.pool = getPool;
现在,您可以在任何地方导入此文件,并使用具有不同数据库名称的相同池
const pool = require("../pool").pool;
pool("yourdatabase").getconnection((error,connection()=>{
connection.query(....)
})
使用以下代码创建pool.js文件
const mysql = require("mysql");
var dbConfigMySql = {
host: "127.0.0.1",
user: "user",
password: "password",
port: "3306",
connectionLimit: 15,
queueLimit: 30,
acquireTimeout: 1000000
}
const pool = mysql.createPool(dbconifg);
function getPool(database_name){
pool.config.connectionConfig.multipleStatements = false;
if(database_name){
pool.config.connectionConfig.database = database_name;
return pool;
}
else{
delete pool.config.connectionConfig.database;
return pool;
}
}
exports.pool = getPool;
现在,您可以在任何地方导入此文件,并使用具有不同数据库名称的相同池
const pool = require("../pool").pool;
pool("yourdatabase").getconnection((error,connection()=>{
connection.query(....)
})
建立连接后不能更改数据库名称。但是,您可以做的是连接到数据库服务器,省略数据库名称,并将其添加到查询中的tablename之前。在建立连接后,您无法更改数据库名称。但您可以做的是连接到数据库服务器,省略数据库名称,并将它们添加到查询中的tablename之前