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之前