Я объявляю свои функции БД в одном файле и хочу, чтобы они возвращали обещание, чтобы я мог использовать их в другом месте. Вопрос как закончить соединение? Я знаю, что мог бы вызывать conn.end()
в любом месте, где я вызываю свою функцию БД, но не мог ли я сделать это в самой функции БД?
Вызывающий ...
function scanBoard(qrCode) {
getBoard(qrCode)
.then(b => {
board = b;
});
}
Функция БД (обратите внимание, код не будет работать, поскольку он содержит все, что я пробовал)
function getBoard(qrcode) {
return db.createConnection(dbConfig)
.then(conn => {
let rows = conn.query("SELECT * FROM boards WHERE id = ?", [qrcode])
.then(() => { conn.end() }); // Can't call it here cus it ends conn before rows is set
conn.end(); // Can't call it here cus rows is still pending
if (rows.length >= 1)
return rows[0];
return null;
})
.finally({
conn.end(); // Can't call it here cus it gets called before the 'then' block in the caller
});
}