ошибка при попытке обновить БД (mysql)
Есть две функции - создать заказ, и отредактировать заказ. Первая отрабатывает как надо, но вторая выдает ошибку Cannot enqueue Handshake after already enqueuing a Handshake (mysql). Обьясните, пожалуйста, где я допускаю ошибку.
import mysql from 'mysql';
class db_connect {
constructor(userChatId) {
this.userChatId = userChatId;
this.connection = mysql.createConnection({
host : '<host>',
user : '<user>',
password : '<password>',
database : 'database'
});
this.connectDb();
}
connectDb = () => {
this.connection.connect()
}
addNewOrder = async () => {
let data = {userId: this.userChatId};
console.log(data)
await this.connection.query('INSERT INTO orders SET ?',data , function (error, results, fields) {
if (error) throw error;
console.log(results)
});
this.connection.end();
}
updateOrder = async (data) => {
this.connectDb();
await this.connection.query(`UPDATE orders SET ${data.key}=? WHERE userId=${this.userChatId}`, data.value, function (error, results, fields) {
if (error) throw error;
console.log(results)
});
this.connection.end();
}
}
let x = new db_connect(33333);
x.addNewOrder().then(r=>console.log(r))
x.updateOrder({firstName:"Вася"}).then(r=>console.log(r))
Ответы (1 шт):
Автор решения: ghetto-coder
→ Ссылка
Поискал получше и нашел топик, где сказано, при использовании node.js убрать connect() и end(). все заработало.