Узел Mysql правильно создает новый пул с новыми учетными данными - PullRequest
0 голосов
/ 01 ноября 2019

Как правильно сбросить подключение к пулу с новыми учетными данными, используя узел mysql?

У меня есть файл базы данных, который работает нормально:

let pool = mysql.createPool(credentials);

export function dosql(sqlQuery) {

  return new Promise((resolve, reject) => {
    pool.getConnection((connErr, connection) => {
      if(connErr) return reject(connErr);
      connection.query(sqlQuery, (queryErr, result, fields) => {
        connection.release(); // return connection to pool
        if (!queryErr) {
          return resolve(result);
        }
        return reject(queryErr);
      });
    });
  });
}

Я хочу дать своим пользователямчтобы изменить учетные данные, поэтому я написал функцию:

function dbReset(){
  if(pool){
    pool.end();
  }
  try {
    pool = mysql.createPool(newCredentials);
  } catch(err) {
    console.log(err);
  }
}

Но каждый раз, когда я запускаю dbReset (), он работает (создает новый пул), но вызывает некоторые странные условия гонки в моем приложении (я думаю).

Вполне возможно, что ошибка возникает в другом месте, но перед тем, как закрыть эти кроличьи норы, я хотел проверить правильность описанного выше способа сброса пула с новыми учетными данными.


РЕДАКТИРОВАТЬ:

Кажется, я решил некоторые из моих проблем, используя:

function dbReset(){
  pool =  mysql.createPool(newCredentials);
}

По существу удаление pool.end () ... делая меняинтересно, если это необходимо?

...