自動化加載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裏。

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