自动化加载Express的路由设置

在使用node + express进行后台开发时,对路由进行配置时,往往需要现在routes文件夹下创建对应的路由,然后在app.js里逐个的require进来,然后使用 app.use('/path', route)逐个配置,当网站比较简单路由文件较少是还好,但是在路由文件逐渐增加的时候就显得代码有点冗杂且笨。对于配置路由这种机械化的工作当然是交给代码来实现比较好,如下代码,我提供了一个可以帮我们自动配置路由的方法。


首先是 untils/getRouters.js

const fs = require('fs');
var exp = {};
module.exports = exp; 
let files = fs.readdirSync(__dirname+'/../routes');
let reg = /([\S]+)\.js$/i;
files.forEach(function(val){
let matchs = reg.exec(val);
if(matchs && matchs.index >= 0){
exp[matchs[1]] = require('../routes/'+ val);
}
});

代码大致效果就是读取routes下的路由文件,然后逐个require进来,用路由文件名做key值放进exports对象里。


然后是app.js

//配置路由
!function(){
var routes = require('./untils/getRouters');
var keys = Object.keys(routes);
keys.forEach(function(k){
let cPath = '';
if(!!routes[k].cPath){
cPath = routes[k].cPath;   //cPath为路由对应的路径,在路由文件里配置,默认为路由文件名
}else{
cPath = k;   
}
app.use('/'+cPath,routes[k]);
});

}();

在app.js里require getRouters.js模块,获得路由对象,然后逐个添加到app里。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章