auto commit
This commit is contained in:
parent
bf9b7642a1
commit
a4b29b6a21
@ -1,14 +1,91 @@
|
|||||||
// src/routes/index.js
|
// src/routes/index.js
|
||||||
|
// const logger = require("../config/logger");
|
||||||
|
// const adminRoutes = require("./admin");
|
||||||
|
// const appRoutes = require("./app");
|
||||||
|
|
||||||
|
// function registerRoutes(app) {
|
||||||
|
// // 기본 경로에 라우터 연결
|
||||||
|
// app.use("/api/v1/admin", adminRoutes);
|
||||||
|
// app.use("/api/v1/app", appRoutes);
|
||||||
|
|
||||||
|
// // 등록된 라우트 출력 (디버깅용)
|
||||||
|
// const routes = [];
|
||||||
|
// app._router.stack.forEach((middleware) => {
|
||||||
|
// if (middleware.route) {
|
||||||
|
// routes.push(
|
||||||
|
// `${Object.keys(middleware.route.methods)} ${middleware.route.path}`
|
||||||
|
// );
|
||||||
|
// } else if (middleware.name === "router") {
|
||||||
|
// middleware.handle.stack.forEach((handler) => {
|
||||||
|
// if (handler.route) {
|
||||||
|
// routes.push(
|
||||||
|
// `${Object.keys(handler.route.methods)} ${handler.route.path}`
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
// logger.info("Registered routes:");
|
||||||
|
// routes.forEach((route) => logger.info(route));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// module.exports = registerRoutes;
|
||||||
|
|
||||||
|
const express = require("express");
|
||||||
|
const menuConfig = require("../config/menuConfig");
|
||||||
|
const menuAccessMiddleware = require("../middleware/menu.middleware");
|
||||||
const logger = require("../config/logger");
|
const logger = require("../config/logger");
|
||||||
const adminRoutes = require("./admin");
|
|
||||||
const appRoutes = require("./app");
|
|
||||||
|
|
||||||
function registerRoutes(app) {
|
function registerRoutes(app) {
|
||||||
// 기본 경로에 라우터 연결
|
// Admin 라우트 등록
|
||||||
app.use("/api/v1/admin", adminRoutes);
|
const adminRouter = express.Router();
|
||||||
app.use("/api/v1/app", appRoutes);
|
Object.entries(menuConfig.admin).forEach(([key, config]) => {
|
||||||
|
registerRouteWithPermissions(adminRouter, key, config);
|
||||||
|
});
|
||||||
|
app.use("/api/v1/admin", adminRouter);
|
||||||
|
|
||||||
// 등록된 라우트 출력 (디버깅용)
|
// App 라우트 등록
|
||||||
|
const appRouter = express.Router();
|
||||||
|
Object.entries(menuConfig.app).forEach(([key, config]) => {
|
||||||
|
registerRouteWithPermissions(appRouter, key, config);
|
||||||
|
});
|
||||||
|
app.use("/api/v1/app", appRouter);
|
||||||
|
|
||||||
|
// 등록된 라우트 로깅
|
||||||
|
logRegisteredRoutes(app);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 권한이 적용된 라우트 등록
|
||||||
|
*/
|
||||||
|
function registerRouteWithPermissions(router, key, config) {
|
||||||
|
const controller = require(`../controllers/${config.path.slice(
|
||||||
|
1
|
||||||
|
)}.controller`);
|
||||||
|
const path = `/${key}`;
|
||||||
|
|
||||||
|
router.use(path, menuAccessMiddleware(config.path), controller);
|
||||||
|
|
||||||
|
// 서브메뉴 등록
|
||||||
|
if (config.subMenus) {
|
||||||
|
Object.entries(config.subMenus).forEach(([subKey, subConfig]) => {
|
||||||
|
const subController = require(`../controllers/${subConfig.path.slice(
|
||||||
|
1
|
||||||
|
)}.controller`);
|
||||||
|
router.use(
|
||||||
|
`${path}/${subKey}`,
|
||||||
|
menuAccessMiddleware(subConfig.path),
|
||||||
|
subController
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 등록된 라우트 로깅
|
||||||
|
*/
|
||||||
|
function logRegisteredRoutes(app) {
|
||||||
const routes = [];
|
const routes = [];
|
||||||
app._router.stack.forEach((middleware) => {
|
app._router.stack.forEach((middleware) => {
|
||||||
if (middleware.route) {
|
if (middleware.route) {
|
||||||
|
Loading…
Reference in New Issue
Block a user