Mysql To Charts(五)--routers文件

在Mysql To Charts(二)–相关知识点中已经提到,路由文件中路由控制
定义了一系列路由代码,可以接收用户请求后渲染模板页面返回给客户端

对于routers下的.js文件的实现,现在先看看路由设计的一些方法

创建路由

//加载express框架
var express = require('express');
//创建一个express实例
var app = express();
//创建express的路由功能,可以根据需要创建多个路由,需要多少,创建多少。
var router = express.Router();

router.use方法

//路由,类似于java中的拦截器功能,在请求到达后台之前,先在这里处理
router.use(function(req, res, next) {
    req.query["name"] = "tom";
    console.info('进入路由,添加一个参数name=tom');
    //next的作用是将请求转发,这个必须有,如果没有,请求到这就挂起了
    next();
});

router.get方法

//加载路由,获取'/'页面
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);
        }
    });
});

你可能感兴趣的:(express)