我有一个网页,显示某些年级的申请数量。例如,6年级,7年级和8年级的申请数量。我用于6年级和7年级的功能如下:
function getGrade6Applicants(req, res, next) {
connection.query('SELECT COUNT(*) AS grade_6 FROM applications WHERE grade="Grade 6" ', function (err, rows, fields) {
if (err) {
return next(err);
};
req._applications = rows;
return next();
});}
function getGrade7Applicants(req, res, next) {
connection.query('SELECT COUNT(*) AS grade_7 FROM applications WHERE grade="Grade 7" ', function (err, rows, fields) {
if (err) {
return next(err);
};
req._applications = rows;
return next();
});}
然后我将这个函数用于我的GET请求,如下所示。如果仅用于Grade_6,则可以正常工作。 mysql表的名称是“应用程序”。
/* GET dashboard page */
router.get('/dashboard', getGrade6Applicants, function (req, res, next) {
res.render('admission/dashboard', {
'applications': req._applications
});
})
这为我提供了mysql数据库中应用程序表中6年级的应用程序数量。
我使用适当的内置辅助函数{{#if}}和{{#each}}在我的dashboard.handlebars页面中将其用作{{grade_6}}。
问题是,每当我想添加第二个功能来显示7年级的应用程序数量时,我只有7年级的应用程序。未显示6年级。这是我用于多个值的GET请求:
/* GET dashboard page */
router.get('/dashboard', getGrade6Applicants, getGrade7Applicants, function (req, res, next) {
res.render('admission/dashboard', {
'applications': req._applications
});
})
最佳答案
这是我有效的解决方案:
我的路由器js文件:
router.get('/dashboard', getGrade7Applicants, getGrade8Applicants, function (req, res, next) {
res.render('admission/dashboard', {
applications: {
'grade7': req._applications7[0],
'grade8': req._applications8[0],
}
});
});
这是html模板:
{{#if applications}}
{{#if applications.grade7}}
{{applications.grade7.grade7}}
{{/if}}
.......
{{#if applications.grade8}}
{{applications.grade8.grade8}}
{{/if}}
{{/if}}