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现在我明白了。谢谢