Ответы пользователя по тегу Node.js
  • Как вытащить данные из запроса к БД функцией connection.query в node.js (кроме conslole.log)?

    w3d12b
    @w3d12b
    Вам нужно разобраться с механизмом экспорта результата функции изнутри во внешнюю среду.
    1. Документация nodejs API "modules"
    2. Пояснения на Хабре

    А в html-файле вывести результат в нужный элемент из скрипта поможет DOM API innerHTML

    mysql.js
    var mysql = require('mysql');
    
    var connection = mysql.createConnection({
      database : 'mysql',
       user     : 'root',
       password : 'toor'
    });
    
    var x={};
    
    var query = function(){
      connection.connect();
      connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
        if (err) throw err;
        x = rows[0].solution;
      });
      connection.end();
    };
    
    var answer = function(){
      return x;
    };
    
    module.exports.query = query;
    module.exports.answer = answer;


    index.html
    <!DOCTYPE html>
    <html>
      <head>
        <title>Hello World2!</title>
     <script>
        var mysql = require('./mysql.js');
        function bodyOnLoad(){
          mysql.query();
        };
    
        function getAnswer(){
          document.getElementById("answer").innerHTML = mysql.answer();
        }
        </script>
      </head>
       <body onload="bodyOnLoad();">
       <div id="answer" onClick="getAnswer;">Click me</div>
      </body>
    </html>


    Но это одноразовый костыль. Чтобы работать с асинхронными коллбак-функциями,
    вариант, предложенный Evansive, элегантнее и удобнее для дальнейшей разработки. И проще, если сесть и понять концепцию, а ваша настойчивость и целеустремленность весьма впечатляют.
    На хабре есть материалы, если с английским сложно.
    Ответ написан
    1 комментарий