Как вытащить данные из запроса к БД в node.js?

463
18 сентября 2017, 03:01

Привет! Как вытащить данные из запроса к БД функцией connection.query в node.js и передать в html? Заранее спасибо.На просторах интернета нашла пример (Не работает):

### `mysql.js`
    var http = require('http');
    var mysql = require('mysql');
    var fs = require('fs');
    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;
    var server = http.createServer(function(request, response) {
     response.writeHead(200, {'Content-Type': 'text/html'});
     var myReadStream = fs.createReadStream(__dirname + '/index.html', 'utf8');
     myReadStream.pipe(response);
     });
    server.listen(3000, '127.0.0.1');
    console.log('Прослушивание порта 3000');

###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>
Answer 1

Используйте шаблонизатор и какой-то http-фреймворк для удобства. Например для Express и шаблонизатора handlebars, передача данных в html будет выглядеть следующим образом:

router.get("/", function(res, req, next){
    connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
        res.render("index.hbs", data: rows}     
    });
})

А потом в вашем .hbs (читайте .html) документе можно будет вывести

<div id="data">{{data.yourdata}}</div>
READ ALSO
MSQL Wordpress: Дублирующаяся запись &#39;0&#39; по ключу &#39;PRIMARY&#39;

MSQL Wordpress: Дублирующаяся запись '0' по ключу 'PRIMARY'

Экспортировал базу mysql вордпресса, потом залил обратноТеперь ничего нельзя добавить в таблицу postmeta, выдает: #1062 - Дублирующаяся запись '0' по ключу...

501
Eclipse error, синтаксис

Eclipse error, синтаксис

Syntax error, insert "}" to complete Class body Syntax error, insert "}" to complete MethodBody

359
Как открыть доступ к js файлам в spring boot мимо security?

Как открыть доступ к js файлам в spring boot мимо security?

У меня есть indexhtml и подключенный index

384
Модификация стандартного функционала netty

Модификация стандартного функционала netty

Есть два локальных сервера (BD server, Auth Server)Общение между ними реализовано с помощью netty 4

233