在Mysql To Charts(二)–相关知识点中已经提到,路由文件中路由控制
定义了一系列路由代码,可以接收用户请求后渲染模板页面返回给客户端
对于routers下的.js文件的实现,现在先看看路由设计的一些方法
//加载express框架
var express = require('express');
//创建一个express实例
var app = express();
//创建express的路由功能,可以根据需要创建多个路由,需要多少,创建多少。
var router = express.Router();
//路由,类似于java中的拦截器功能,在请求到达后台之前,先在这里处理
router.use(function(req, res, next) {
req.query["name"] = "tom";
console.info('进入路由,添加一个参数name=tom');
//next的作用是将请求转发,这个必须有,如果没有,请求到这就挂起了
next();
});
//加载路由,获取'/'页面
router.get('/', function(req, res, next) {
res.render('index', { title: 'SeewoSoftware', company: 'CVTE' });
});
其中
1. ‘/’:对应的“/”下的页面
2. ‘index’:对应到views文件下的同名.ejs文件(即index.ejs)
3. title/company:传到index.ejs文件的参数
现看看index.js文件的具体实现
现需要的是为每个项目做为一个页面曲线图展示,故每个项目都定义一个.ejs文件,在index.js中映射响应的子页面
定义一个函数
function subitemPage(project) {
router.get('/'+project, function (req, res, next) {
res.render(project, { title: project+'数据统计' });
});
}
将所有项目定义一个数组
var projectList = new Array(
'EasiNote3',
'EasiNote5',
'SeewoRemote',
'EasiBroadcast',
'EasiNet',
'jianjishi',
'EasiCamera',
'ArmyShow',
'SeewoAir',
'SeewoLink',
'shoukebao',
'EasiConnect',
'SeewoOS',
'SeewoCare',
'SeewoAdmin',
'UnifiedLanding',
'SeewoBBS',
'EN5Admin',
'TeacherTraining',
'SeewoClass',
'EasiNote4Linux'
);
然后直接遍历数组,调用函数即可
for(var i=0;i<projectList.length;i++){ subitemPage(projectList[i]); }
在index.js文件中,必须还得定义主界面
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'SeewoSoftware', company: 'CVTE' });
});
其中,在Mysql To Charts(四)中提到的在index.js文件中请求数据库,让绘图的data中进行回调
/** * 请求数据库数据 */
router.get('/NextPage/report/data', function (req, res, next) {
jiraMysqlQuery.checkProjectBugNumber(req.param('projectName'), function(error, data) {
if(error) {
res.send({stateCode: 500});
}else {
res.send(data);
}
});
});