Ошибка при коннекте к бд mysql в node js

Создаю свое api переадрессатор. При первом запросе к моей функции она коннектиктся к бд, я получаю от туда инфу, после чего делаю апи запрос на другое апи и возвращаю информацию клиенту. И все хорошо отрабатывает при первом запросе, на следующем уже запросе я получаю ошибку 'Can't add new command when connection is in closed state' в блоке кода

connection.connect(err => {
  if (err) {
      return console.log('error connect')
  }
})

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

connection.end(function(err) {
   if (err) {
     return console.log("Ошибка: " + err.message);
   }
   console.log("Подключение закрыто");
});

В чем проблема - загадка. Пытался нагуглить информацию, ничего толкового не нашел. Очень надеюсь на вашу помощь.

Весь код:

const getAvailableNumbers = async (req,res,next) => {
    const query = req.query
    const TOKEN = process.env.KEY_SMSACTIVATE

    if (!query.token) {
        return console.log('token not found')
    }

    connection.connect(err => {
        if (err) {
            return console.log('error connect')
        }
    })

    const sql = `SELECT * FROM ugc_users where api_key = '${query.token}'`;
                 
    connection.query(sql, (err, results) =>{
        if(err) {
            return console.log(err.message)
        }
        else {
            if (results.length == 0) {
                return console.log('not found token')
            } else {
                console.log(results)
                fetch(`https://api.sms-activate.org/stubs/handler_api.php?api_key=${TOKEN}&action=getNumbersStatus`)
                .then(res => res.text())
                .then(text => res.json(text))
            }
        }
    });
    connection.end(function(err) {
        if (err) {
          return console.log("Ошибка: " + err.message);
        }
        console.log("Подключение закрыто");
    });
}

ДОБАВЛЕНИЕ:

Если убрать connection.end() или connection.destroy(), все работает. Насколько это нормальное решение из ситуации. И как это может сказаться на апи ? Сильно ли просядет оптимизация


Ответы (0 шт):