• Как вставить json в mysql?

    Staltec
    @Staltec
    Node.js разработчик
    0) Строку SQL запроса лучше обрамлять двойными кавычками, чтобы спокойно использовать одинарные кавычки внутри запроса для обозначения текстовых констант.

    1) Изучите документацию по модулю который используете, там всё описано подробно и доступно.

    2) Не вставляйте параметры напрямую в запрос. Никогда.

    var T = [1, 2, '3', 4, 5];
    connection.query("INSERT INTO `tasks` SET ?", {
      login: req.body.login,
      description: JSON.stringify(T),
      type: 3,
      time: new Date()
    }, function(err) {
      if (err) throw err;
    });

    UPD: а можно даже так
    var T = [1, 2, '3', 4, 5];
    connection.query("INSERT INTO ?? SET ?", [
      'tasks', 
      {
        login: req.body.login,
        description: JSON.stringify(T),
        type: 3,
        time: new Date()
      }
    ], function(err) {
      if (err) throw err;
    });
    Ответ написан
    1 комментарий
  • Как вытащить данные из запроса к БД функцией 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 комментарий