自動化載入Express的路由設定
阿新 • • 發佈:2019-01-09
在使用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裡。