У меня есть несколько модулей, для которых требуется мой пользовательский модуль Promisified MySQL. js. Я пытаюсь использовать пул соединений из библиотеки NodeJS mysql.
Я попытался установить переменную с именем connectionPool для хранения инициализированного пула. Однако, похоже, что для каждого модуля, который импортирует мой файл Promisified MySQL. js, он пытается инициализировать новый экземпляр пула.
Я хочу создать ТОЛЬКО один экземпляр пула, который содержится внутри Promisified MySQL. js
Почему мой connectionPool не поддерживает свое состояние должным образом?
const mysql = require('mysql');
let connectionPool = null;
const initializePool = ()=>{
if(isLiveEnv()){
connectionPool = createLivePool();
}
else if(isDevEnv()){
connectionPool = createDevPool();
}
}
if(connectionPool === null){
console.log(connectionPool === null);
console.log('init pool!');
initializePool();
}
let query = (sql, args) =>{
return new Promise((resolve,reject) => {
getConnection().then(con => {
con.query(sql,args,(err,result) => {
if(err) {
con.release();
reject(err);
}
else{
con.release();
resolve(result);
}
})
})
.catch(err =>{
reject(err);
})
})
} // end query.
Мой экспорт выглядит следующим образом:
module.exports = {
query:query
}
Где запрос получает соединение из пула, выполняет запрос и освобождает соединение.
Если у меня есть module1. js и module2 . js require ('./ Promisified. js'), тогда он фактически создает два пула, хотя после создания первого я устанавливаю connectPool быть ненулевым;