我想从一个池对象中获取一个数据库,并为其分配一个不同的数据库名称。
我一直在使用此功能来获取池。但是此函数每次都会返回一个具有不同配置的新池。
getCsvReport(jobId): Observable<Object> {
const header = { Accept: "application/octet-stream" };
let endpoint: string = `${Endpoints.REPORT}jobs/${jobId}/filePath?`;
return this.get(endpoint, header).pipe(
map(report => {
const a = document.createElement('a');
document.body.appendChild(a);
const blob: any = new Blob([report.data.parentXml], { type: 'octet/stream' });
const url = window.URL.createObjectURL(blob);
a.href = url;
a.download = data.fileName;
a.click();
window.URL.revokeObjectURL(url);
})
);
}
我想要这样的东西。以便它返回具有不同配置的相同池。
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;
}
答案 0 :(得分:0)
使用以下代码创建文件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(....)
})