1. 程式人生 > >自動化載入Express的路由設定

自動化載入Express的路由設定

在使用node + express進行後臺開發時,對路由進行配置時,往往需要現在routes資料夾下建立對應的路由,然後在app.js裡逐個的require進來,然後使用 app.use('/path', route)逐個配置,當網站比較簡單路由檔案較少是還好,但是在路由檔案逐漸增加的時候就顯得程式碼有點冗雜且笨。對於配置路由這種機械化的工作當然是交給程式碼來實現比較好,如下程式碼,我提供了一個可以幫我們自動配置路由的方法。

首先是 untils/getRouters.js

const fs = require('fs');
var 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);
    }
});
module.exports = exp; 

程式碼大致效果就是讀取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裡。