Nodejs网站不显示第二个MySQL表值

我有一个快速的网站,在MySQL中显示值。 它显示新闻,但不显示事件。 我确定事件表中有2个值。

这里是我的index.js文件的路线:

var express = require('express'); var router = express.Router(); var mysql = require('mysql'); //connection variables var connection = mysql.createConnection({ host: 'localhost', port: '3306', user: 'root', password: 'mypassword*', database: 'icomnodejs' }); connection.connect(); router.get('/', function (req, res, next) { connection.query('SELECT * FROM news', function (err, rows, fields) { if (err) throw err; res.render('index', { 'news' : rows }); }); }); router.get('/', function (req, res, next) { connection.query('SELECT * FROM events', function (err, rows, fields) { if (err) throw err; res.render('index', { 'events': rows }); }); }); module.exports = router; 

这里是我的视图文件名为index.handlebars

  <div class="row"> {{#if news}} {{#each news}} <div class="col-md-4 img-portfolio"> <a href="portfolio-item.html"> <img class="img-responsive img-hover" src="http://placehold.it/700x400" alt=""> </a> <h3> <a href="portfolio-item.html">{{title}}</a> </h3> <p>{{text}}</p> </div> {{/each}} </div> {{else}} <p>No News</p> {{/if}} <hr> <!-- Marketing Icons Section --> <div class="row"> <div class="col-lg-12"> <h1 class="page-header"> Upcoming Events Lopping As well </h1> </div> {{#if events}} {{#each events}} <div class="col-md-4"> <div class="panel panel-default"> <div class="panel-heading"> <h4><i class="fa fa-fw fa-check"></i> {{title}}</h4> </div> <div class="panel-body"> <p>{{text}}</p> <a href="#" class="btn btn-default">Learn More</a> </div> </div> </div> {{/each}} {{else}} <p>No events</p> {{/if}} </div> 

基于视图文件,我从数据库中看到新闻,但是我没有看到事件。 我只是没有看到问题出在哪里。

我认为你误解了expression中间件和路由的概念。 您正在注册相同的path不同的路由器处理程序。 类似的东西会做你所需要的:

 var express = require('express'); var router = express.Router(); var mysql = require('mysql'); //connection variables var connection = mysql.createConnection({ host: 'localhost', port: '3306', user: 'root', password: 'mypassword*', database: 'icomnodejs' }); connection.connect(); function getNews(req, res, next) { connection.query('SELECT * FROM news', function (err, rows, fields) { if (err) { return next(err); }; req._news = rows; return next(); }); } function getEvents(req, res, next) { connection.query('SELECT * FROM events', function (err, rows, fields) { if (err) { return next(err); }; req._events = rows; return next(); }); } router.get('/', getNews, getEvents, function (req, res, next) { res.render('index', { 'news': req._news, 'events': req._events }); }); module.exports = router;