2016-12-13 5 views
0

特定のグレードのアプリケーション数を表示するWebページがあります。例えば、私は6年生と7年生のために使用年生6中のアプリケーションの数、等級7およびグレード8の機能は以下の通りです:Nodejsプロジェクトのハンドルバーを使用したmysqlデータベーステーブルのカウント値の表示

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テーブルの名前は "applications"です。

/* GET dashboard page */ 
router.get('/dashboard', getGrade6Applicants, function (req, res, next) { 
    res.render('admission/dashboard', { 
     'applications': req._applications 
    }); 
}) 

これは私のアプリケーションテーブルのグレード6でのアプリケーションの数をmysqlデータベースに与えます。

これは、適切な{{#if}}と{{#each}}のヘルパーを使用して、私のdashboard.handlebarsページで{{grade_6}}として使用します。

問題は、グレード7のアプリケーションの数を表示するために2番目の機能を追加したい場合は、グレード7のアプリケーションだけです。グレード6は表示されません。ここで私は、複数の値に使用GETリクエストは次のとおりです。ここで

/* GET dashboard page */ 
router.get('/dashboard', getGrade6Applicants, getGrade7Applicants, function (req, res, next) { 
    res.render('admission/dashboard', { 
     'applications': req._applications 
    }); 
}) 
+0

それぞれのgetGradeXApplicationsは同じ変数を上書きし、結果を格納します(req._applications)。 – PeterVC

+0

私はウェブページ上でそれを使うことができるので、どのようにオーバーライドして別の結果を得ることができますか? – GoGo

+0

いくつかの方法:異なる変数名を使用して、配列などに押し込む – PeterVC

答えて

0

は働く私のソリューションです:

私のルータの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}} 
関連する問題