Как заполнить список данных в пользовательском интерфейсе с помощью MySQL и NodeJS

#mysql #node.js

#mysql #node.js

Вопрос:

Я новичок в NodeJS, и мне было поручено заменить существующие жестко закодированные данные данными, извлекаемыми из базы данных MySQL. Данные отображаются соответствующим образом в пользовательском интерфейсе при передаче жестко закодированных данных.

Ниже приведен жестко закодированный код, который я пытаюсь заменить

 router.route('/vehicles').get(function(req,res){
    var category = req.param("category");
    var term = req.param("term");
    var vehicles = [
        {id:1,name:"Test1",price:120,image:"image1",category:"Petrol"},
        {id:2,name:"Test2",price:100,image:"image2",category:"Diesel"},

    ]
    res.send(vehicles);
});
  

Вот код для извлечения из базы данных Mysql

 router.route('/Vehicles').get(function(req,res){
    var category = req.param("category");
    var term = req.param("term");
    var query = 'select * from cars where category='' category ''';
    var Vehicles = connection.query(
        query,
        function(err,result){
            if(err) {
                res.send({message: err});
                return;
            }else {
                res.send(result[0]);
            }
        }
    );
});
  

При замене приведенным выше кодом Sql я не вижу никаких данных, заполняемых в пользовательском интерфейсе. Я создал таблицу и вставил в нее некоторые значения. По-прежнему не вижу никаких данных.

Вот мой connection.js

 var mySql = require('mysql');

var connection = mySql.createConnection({
    host : "localhost",
    user : "root",
    password : "root", 
    database : "test_db"
});
connection.connect();
  

Любая помощь будет очень признательна. Спасибо!!

Ответ №1:

попробуйте это.

db.js

  var mysql      = require('mysql');
 var connection = mysql.createConnection({
  host     : 'localhost',
 user     : 'xxxx',
password : 'xxx@123',
database : 'xxxxx'
});

 var db = function() {

}

 db.getConnection = function () {
  return connection.connect();

 }
module.exports = db;
  

server.js

      var connection = require('./db');
     var db = connection.getConnection(); 
    router.route('/Vehicles').get(function(req,res){
    var category = req.param("category");
    var term = req.param("term");

     db.query(
     'select * from cars where category= ?',[category],
      function(err,result){
        if(err) 
            res.send({message: err});
            else 
            res.send(result[0]);
        });
   });
  

Комментарии:

1. Я попробовал приведенный выше код, но все равно не могу видеть данные в пользовательском интерфейсе. Я действительно упускаю что-то глупое здесь.

2. попробуйте распечатать на консоли и посмотреть, получаете вы данные или нет