javascript - 在同一个表上运行两个查询并在同一个路由上实现它们
问题描述
我怎样才能使这项工作?
我认为我应该使用承诺,但我对它们知之甚少。我已经阅读过它们,但无法创建应有的结构。
我只是想在同一个表上运行两个不同的查询,并在同一个 ejs 文件上使用返回值
app.get('/', (req, res) => {
db.query('SELECT COUNT(*) AS count, FORMAT(SUM(donation_amount),2) AS total FROM donations;', (err, result) => {
if (err) throw err;
let count = result[0].count; //since query column is requested as "count". we can use "count" to get back the raw value
let total = result[0].total;
res.render('home', { count: count, total: total }); // just the file name is enough. ejs engine looks up the file name in the "views" folder
});
db.query('SELECT CONCAT(first_name, ", ", last_name AS latest_donator, donation_amount AS amount FROM donations ORDER BY donation_time LIMIT 1;', (err, result) => {
if (err) throw err;
let donatorName = result[0].latest_donator;
let amount = result[0].amount;
res.render('home', {first_name: donatorName, amount: amount});
});
});
解决方案
res.render(...)
只有获得两个查询的结果后,您才能发送响应 ( )。因此,您可能希望像这样按顺序执行它们。
app.get('/', (req, res) => {
db.query('SELECT COUNT(*) AS count, FORMAT(SUM(donation_amount),2) AS total FROM donations;', (err, result) => {
if (err) throw err;
let count = result[0].count; //since query column is requested as "count". we can use "count" to get back the raw value
let total = result[0].total;
db.query('SELECT CONCAT(first_name, ", ", last_name AS latest_donator, donation_amount AS amount FROM donations ORDER BY donation_time LIMIT 1;', (err, result) => {
if (err) throw err;
let donatorName = result[0].latest_donator;
let amount = result[0].amount;
res.render('home', { first_name: donatorName, amount: amount, count: count, total: total });
});
});
});
但是查询彼此独立,因此您可以并行运行它们。
推荐阅读
- python - 如何切割此图像的轴并使轴居中?
- r - R中的数据集生成
- python-3.x - 如何在 matplotlib 中创建一个绘图,而不是 index(x) 和 df colomn(y),而是使用 df 和 colom2(y) df 的 colom1 (x)?)
- laravel - .Vue 文件:将结构从“模板:”迁移到
- oracle-adf - 仅通过单击两次删除的行
- c# - 在字典初始值设定项语法 C# 中访问类变量
- c++ - 以 Eigen::Vector 为参数
- javascript - 如何在 React Hooks 中更改 Provider 的值
- javascript - 我怎样才能在我的代码中只显示我想要的文本?
- oracle - 带有 UPDATE OF 的 Oracle 触发器(列名与表相同)