PS
Помогите пожалуйста)
*express*
У меня такая проблема:
Есть БД mysql из нее хочу вывести данные.
Проблема в том, что запрос выполняется, данные приходят, но потом куда-то улетучиваются)))
+ я никак не могу разобраться как дождаться результата выполнения запроса, а после уже выводить его.
db.js...
makeQuery(query) {
this.connection.query(query, (err, result) => {
if(err)
console.log('query error!!!' + err.message);
console.log(result);
return result;
});
}
queries.js...
function selectUserByName (){
console.log('query start')
var result =db.makeQuery("SELECT * FROM user");
console.log(result);
console.log('query end');
};
в
db.js result выводит, а уже в queries.js - нет. Console:
query start
undefined
query end
*Результат запроса*
Куда девается результат запроса после вызова функции и как сделать структуру async-await чтобы дождаться результата?
Заранее огроменное спасибо!
return result выполняется не в makeQuery, а в коллбеке функции connection.query. и чтобы makeQuery вернул результат, тебе нужно добавить в нее коллбек: makeQuery(query, callback) {
this.connection.query(query, (err, result) => {
if (err) console.log("query error!!!" + err.message);
console.log(result);
callback(result);
});
}
function selectUserByName() {
console.log("query start");
db.makeQuery("SELECT * FROM user", (result) => {
console.log(result);
console.log("query end");
});
}
сейчас уже появились способы работы без коллбеков, что куда удобнее. но это ты уж сам изучай, ссылки тебе дали
