Javascript 如何在一个http请求中使用节点呈现多个mysql查询

Javascript 如何在一个http请求中使用节点呈现多个mysql查询,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我需要从不同的表中进行两个查询,我应该如何做,以便在新页面中输出数据。现在它正在处理一个查询 exports.getAllImages = function () { return new Promise((resolve, reject) => { con.query("SELECT * FROM products WHERE product_group='TRENCH CONVECTORS'", function (err, result, fields) {

我需要从不同的表中进行两个查询,我应该如何做,以便在新页面中输出数据。现在它正在处理一个查询

exports.getAllImages = function () {
    return new Promise((resolve, reject) => {
        con.query("SELECT * FROM products WHERE product_group='TRENCH 
CONVECTORS'", function (err, result, fields) {
            if (err) reject(err);
            resolve(result);
        });
    });
}

//This is what i tried, but it does not work
router.get('/product/:id', async function(req, res, next) {
  let filesFromFolder;
  let allimages
  database.retreaveImage(req.params.id).then(function(value) {
    filesFromFolder = value;

  });
  database.getAllImages().then(function(value){
    allimages = value;
  })

  res.render('product.ejs', {
    productName: req.params.id,
    data: filesFromFolder,
    allimages: allimages
  });
});

//This code works, and i am using it now
router.get('/product/:id', async function(req, res, next) {
  let filesFromFolder;
  database.retreaveImage(req.params.id).then(function(value) {
    filesFromFolder = value;
    res.render('product.ejs', {
      productName: req.params.id,
      data: filesFromFolder
    });
  });
});

我应该如何编辑代码以执行两个查询?

我不确定您是想要从两个表中检索数据的单个查询,还是想要从两个表中检索两个不同的查询……如果是第二个,您可以连接函数以获得线性数据流

//This code works, and i am using it now
router.get('/product/:id/:temp', async function(req, res, next) {
  let filesFromFolder;
  database.retreaveImage(req.params.id).then(function(value) {

    var filesFromFolder = value;        

    //Using a temp function
    database.retreaveTemp(req.params.temp).then(function(value_temp) {

        var filesFromTemp = value_temp;

        res.render('product.ejs', {
           productName: req.params.id,
           data: filesFromFolder,
           dataTemp: filesFromTemp 
       });
    });
  });
});

当收到来自两个查询的响应时,需要呈现页面。 您可以为此使用Promise.all()方法

Promise.all([
  database.retreaveImage(req.params.id),
  database.getAllImages()
]).then(resultArr => {
  filesFromFolder = resultArr[0];
  allimages = resultArr[1];

  res.render("product.ejs", {
    productName: req.params.id,
    data: filesFromFolder,
    allimages: allimages
  });

});

研究SQL
JOIN
假设表与一个表和另一个表有关系:如果您无法计算出来,请参见..@RaymondNijland现在我明白了。谢谢