Как подключиться к базе данных и получить данные из нескольких таблиц в nodejs? - PullRequest
0 голосов
/ 13 мая 2019

Я создал соединение с базой данных, где много таблиц, связанных с предметами (например: - subject1, subject2, subject3 ...).

Каждая предметная таблица имеет два столбца: «IndexNo, Result».Я хочу получить результаты, связанные с тем же индексом нет.из каждой таблицы (результаты одного студента по многим предметам) и поместите ее в массив.Как это сделать?

Это мой код, и он возвращает много ошибок.

    const mysql = require('mysql');

    var connect = mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'',
    database:'results_center'
    });

    var studentid = 1234;
    var results = [];
    var i =0;
    for(i=1;i++;i<8){

        var newResult;
        connect.query("select result from subject"+i+" WHERE Index_No = " + studentid,(err,result)=>{
            newResult = result;
        });
            results[i] = result;
    }
      connect.end() 
      console.log(results);

Ответы [ 2 ]

0 голосов
/ 13 мая 2019
var mysql = require('mysql');
var con = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'results_center'
});

con.connect(function(err) {
    if (err) throw err;
    console.log("connected to mysql");

    var subjectResults = [];
    var studentid = 1234;
    var sql = '';

    var i = 0;
    for (i = 1; i++; i < 8) {
        sql = "select result from subject" + i + " WHERE Index_No = " + studentid;
        con.query(sql, function(err, results, fields) {
            subjectResults.push(results);
        });
    }
});
0 голосов
/ 13 мая 2019

Преобразование обратного вызова в обещание и использование Promise.all для получения всех результатов.

const util = require('util');
const query = util.promisify(connect.query);


var i = 0;
var promises = [];
for(i=1;i++;i<8){
    promises.push(query("select result from subject"+i+" WHERE Index_No = " + studentid));
}

Promise.all(promises).then(results => {
  connect.end() 
  console.log(results);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...