Я новичок в разработке Electron и NodeJS. В моем настольном приложении я определил как таковые классы DAO для извлечения моих данных из моей схемы БД. Каждый класс имеет все обычные функции CRUD (соответствующие всем запросам, которые им нужны). Т.е. для моей функции getAllProducts()
я определил ее следующим образом
class ProdottiDAO {
...
getAllProducts(callback)
{
var query = "SELECT * FROM `MY_TABLE`";
this.resultQuery = this.sqlManager.CONNECTION.query(query, null, function(error, results, fields){
if (error) throw error;
return callback(results);
});
sqlManager
является закрытым членом, просто создает соединение с БД resultQuery
является закрытый член просто должен хранить таблицы данных
В моем index.js
я пытаюсь получить свои данные следующим образом:
var resultQuery = [];
var prodotto = new ProdottiDAO();
prodotto.getAllProducts(function (res){
if(res.length==0) alert("No products");
for(var i=0; i<res.length; i++){
// Stores res in resultQuery var
resultQuery.push(res[i]);
}
});
document.getElementById('desc-prod').innerText = resultQuery[0][0].descrizione;
Но переменная resultQuery[0][0]
всегда устанавливается как undefined
на index. html на странице, в то время как при печати с помощью console.log (resultQuery) я могу правильно получить доступ к структуре RowDataPacket с помощью resultQuery[0][0]
. Что я могу сделать, чтобы извлечь данные res из функции обратного вызова?