From 55de8a14bb6dd73bb31df9cc3a88a3fb17cb2cc2 Mon Sep 17 00:00:00 2001 From: Jerry Date: Sat, 5 Apr 2025 01:20:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- pnpm-lock.yaml | 3 +++ src/app.ts | 43 ++++++++++++++++++++++++++++++++++--------- 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index b00f9c7..fcb657a 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "dependencies": { "chalk": "4", "dotenv": "^16.0.0", - "express": "^4.18.0" + "express": "^4.18.0", + "mkdirp": "^3.0.1" }, "devDependencies": { "@types/express": "^4.17.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e1285d..79d89cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: express: specifier: ^4.18.0 version: 4.21.2 + mkdirp: + specifier: ^3.0.1 + version: 3.0.1 devDependencies: '@types/express': specifier: ^4.17.0 diff --git a/src/app.ts b/src/app.ts index 5a00f04..ed9cf9c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,23 +1,48 @@ import express from 'express'; import logger from './utils/logger'; -import fc from './utils/file'; import paths from './utils/path'; import sampleController from './modules/sample/sample.controller'; import imageController from './modules/image/image.controller'; +import config from './utils/config'; +import fc from './utils/file'; const apps = { createApp() { const app = express(); + logger.info('晶灵核心初始化..'); + app.use(express.json()); - app.use('/public', express.static(paths.get('public'))); - logger.debug(`路由/public挂载成功..`); - app.use('/api/sample', sampleController.getRouter()); - logger.debug(`路由/api/sample挂载成功..`); - app.use('/images', imageController.getRouter()); - logger.debug(`路由/images挂载成功..`); - fc.createDir(paths.get('log')); - logger.info('晶灵核心初始化成功!'); + logger.debug('成功加载express.json()中间件'); + + const publicPath = paths.get('public'); + app.use('/public', express.static(publicPath)); + logger.debug(`静态资源路由挂载:/public → ${publicPath}`); + + const modules = [ + { path: '/api/sample', name: '测试模块', controller: sampleController }, + { path: '/images', name: '图像模块', controller: imageController }, + ]; + + modules.forEach((module) => { + app.use(module.path, module.controller.getRouter()); + logger.debug(`模块路由挂载: ${module.path.padEnd(12)} → ${module.name}`); + + if (config.get('DEBUG', false)) { + module.controller.getRouter().stack.forEach((layer) => { + if (layer.route) { + const methods = Object.keys(layer.route) + .map((m) => m.toUpperCase()) + .join(','); + logger.debug(` ↳ ${methods.padEnd(6)} ${module.path}${layer.route.path}`); + } + }); + } + }); + const logPath = paths.get('log'); + fc.createDir(logPath); + logger.debug(`日志目录初始化: ${logPath}`); + logger.info('晶灵核心初始化完毕!'); return app; }, };