Initial commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
! /servers/dashboard/routers/index.js – Central Gateway Routing Aggregator
|
||||
? This module dynamically collects and registeres all modular ".router.js" files within the "routers" directory
|
||||
*/
|
||||
|
||||
// % import nodejs packages
|
||||
const router = require('express').Router();
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
// % import external dependencies
|
||||
const rootDir = path.resolve(__dirname, '..', '..', '..');
|
||||
const { dirs } = require(path.resolve(rootDir, 'configuration', 'mapping.js'));
|
||||
|
||||
// % read router files recursively
|
||||
const routerRoot = path.resolve(dirs.dashboardDir, 'routers');
|
||||
const routerFiles = fs.readdirSync(routerRoot)
|
||||
.filter(file => /\.router\.js$/.test(file))
|
||||
.sort((a, b) => {
|
||||
if (a === 'root.router.js') return 1;
|
||||
if (b === 'root.router.js') return -1;
|
||||
return a.localeCompare(b);
|
||||
});
|
||||
|
||||
// $ configure used routers
|
||||
routerFiles.forEach(file => {
|
||||
const routerPath = path.resolve(routerRoot, file);
|
||||
router.use(require(routerPath));
|
||||
});
|
||||
|
||||
// § export router module
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user