Как заставить Node.Js дождаться выполнения MySQL?

Т.к. Node.js, в отличии от PHP - штука асинхронная, то возникают некоторые трудности...
function sql_get(){
  var mysql      = require('mysql');
  var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : '1047750'
  });
  connection.query(
    'SELECT * FROM test',
    function(err, result, fields){
      return(result[0]);
    }
  );
  
  connection.end();
}
console.log(sql_get());

Код выводит в консоль "undefined"...
ВНИМАНИЕ, ВОПРОС! Как заставить Node дождаться ответа от MySQL, а потом уж вывести значение в консоль?
В гугл не слать! Кроме головной боли он пока ничего не дал...
  • Вопрос задан
  • 1763 просмотра
Решения вопроса 1
Ahen
@Ahen
Универсальный дилетант
А если так:
var mysql      = require('mysql');
  var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : '1047750'
  });
  connection.query(
    'SELECT * FROM test',
    function(err, result, fields){
      console.log(err);
      console.log(result);
    }
  );
  
  connection.end();

У вас тут итак колбек, функция, которая будет вызвана после совершения запроса и примет в себя данные (результат либо ошибка).
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@BorisKorobkov Куратор тега MySQL
Web developer
Функция sql_get() не имеет return, поэтому "undefined".
return совсем в другой функции. Кстати, он никак не используется. Вместо него напишите вызов нужного вам действия (например, console.log(result);).

Забудьте про PHP и синхронность. Если взялись писать на node.js - учитесь асинхронности!
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
await из ES6 передает вам привет

caolan.github.io/async
лучшая псевдо асинхроностьи избавление от колбасы колбеков
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
BetBoom Москва
от 120 000 до 200 000 ₽
от 50 000 до 100 000 ₽
ДокЛаб Москва
от 150 000 до 150 000 ₽
25 окт. 2020, в 21:47
1500 руб./за проект
25 окт. 2020, в 19:37
2500 руб./за проект
25 окт. 2020, в 19:27
25000 руб./за проект