我有一个网页,显示某些年级的申请数量。例如,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}}

08-04 17:20