Ждите запроса в Node.js MySQL - PullRequest
0 голосов
/ 08 марта 2020

Когда я запускаю это прямо сейчас, страница отображается раньше, чем она может получить данные от MySQL. L oop выполняет поиск всех файлов в папке и находит эти данные в разделе Как заставить данные ждать отправки данных перед загрузкой веб-страницы?

app.get('/explore', function(req,res){
  var fileNames = new Array();
    pool.getConnection(function(err, connection) {
      fs.readdirSync('./files').forEach(file => {
        if (err) throw err;
        var requester = "SELECT * FROM files WHERE dbname = '" + file + "'";
        pool.query(requester, function (err, result) {
          if (err) throw err;
          fileNames.push(result[0].name);
        });
        connection.release();
      });
    });
  res.render('explore', { fileNames : fileNames })
});

1 Ответ

0 голосов
/ 08 марта 2020

Вы можете внести незначительные исправления в код, чтобы он отображался так, как задумано.

app.get('/explore', function(req,res){
  var fileNames = new Array();
    pool.getConnection(function(err, connection) {
      fs.readdirSync('./files').forEach(file => {
        if (err) throw err;
        var requester = "SELECT * FROM files WHERE dbname = '" + file + "'";
        pool.query(requester, function (err, result) {
          if (err) throw err;
          fileNames.push(result[0].name);
          res.render('explore', { fileNames : fileNames })
          //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
        });
        connection.release();
      });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...