Ошибка при коннекте к бд 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(), все работает. Насколько это нормальное решение из ситуации. И как это может сказаться на апи ? Сильно ли просядет оптимизация