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");
});
}