我有一个快速网站,在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>
根据视图文件,我看到数据库中的新闻,但我看不到事件。我只是没有看到问题出在哪里。
答案 0 :(得分:1)
我认为您误解了快速中间件和路由的概念。您正在注册相同的路径不同的路由器处理程序。这样的事情会做你需要的:
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;