IwanQ
@IwanQ
Плохие времена часто дают прекрасные возможности

Проблема с базой данных?

Здравствуйте, работаю с бд mysql в node js через модуль mysql.

Есть функция для получения данных:

const getData = q=>{
  return new Promise((resolve,reject)=>{
    connection.query(q, (err,result)=>{
      if(err) reject(err);
      
      resolve(result);
    });
  });
};


Здесь нет connection.end(), поэтому через некоторое время приложение крашится, это понятно. (PROTOCOL_CONNECTION_LOST)

Но если я делаю например так:

if(err) reject(err);  
resolve(result);
connection.end();


То на 2-м обновлении приложение тоже будет крашится с ошибкой PROTOCOL_ENQUEUE_AFTER_QUIT, суть ошибки я понимаю, но почему она возникает пока не разобрался.

Хотя в коде

connection.query(q, (err,result)=>{
if(err) throw err;
        
console.log(result);
connection.end();
});


ошибки нет.

Подскажите пожалуйста, где я допускаю ошибку. Заранее спасибо.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
То на 2-м обновлении

А вы перед эти 2-м обновлением установили снова новое соединение в базу?
Ну и остается вопрос зачем вам вообще соединение закрывать после запроса. запустилось приложение, открыли, завершаете приложение - закрыли, вышли.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы