Skip to content

项目结构

目录结构

kevi_blog-v2/
├── app/                          # 前端应用 (Nuxt页面、组件、样式等)
│   ├── components/               # 全局Vue组件
│   │   ├── BackToTop.vue         # 返回顶部组件
│   │   ├── Footer.vue            # 页脚组件,包含联系信息和链接
│   │   └── Header.vue            # 导航头组件,支持主题切换
│   ├── composables/              # 组合式函数
│   │   ├── useApi.ts             # API请求封装
│   │   ├── useAuth.ts            # 认证相关逻辑
│   │   └── useAutoHandle.ts      # 自动处理逻辑
│   ├── layouts/                  # 布局模板
│   │   ├── admin.vue             # 管理后台布局
│   │   ├── default.vue           # 默认布局
│   │   └── project.vue           # 项目详情布局
│   ├── middleware/               # 路由中间件
│   ├── pages/                    # 页面组件 (完整的前台+后台)
│   │   ├── admin/                # 管理后台页面 (12个模块)
│   │   ├── home/                 # 首页模块
│   │   ├── projects/             # 项目展示页面
│   │   ├── articles/             # 文章展示页面
│   │   └── ...
│   ├── plugins/                  # 插件
│   ├── styles/                   # 全局样式
│   └── types/                    # TypeScript 类型定义
├── server/                       # 后端 API (100+个接口)
│   ├── api/                      # API 路由
│   │   ├── admin/                # 管理接口
│   │   │   ├── articles/         # 文章管理API
│   │   │   ├── projects/         # 项目管理API
│   │   │   ├── categories/       # 分类管理API
│   │   │   ├── galleries/        # 图库管理API
│   │   │   ├── resources/        # 资源管理API
│   │   │   ├── skills/           # 技能管理API
│   │   │   ├── carousels/        # 轮播图管理API
│   │   │   ├── settings/         # 系统设置API
│   │   │   ├── analytics/        # 数据分析API
│   │   │   ├── users/            # 用户管理API
│   │   │   ├── wall-messages/    # 留言管理API
│   │   │   ├── technologies/     # 技术标签API
│   │   │   ├── stats.get.ts      # 统计数据
│   │   │   └── system.get.ts     # 系统信息
│   │   ├── auth/                 # 认证相关API
│   │   │   ├── login.post.ts     # 用户登录
│   │   │   ├── logout.post.ts    # 用户登出
│   │   │   ├── me.get.ts         # 获取当前用户信息
│   │   │   ├── forgetPassword.post.ts # 忘记密码
│   │   │   ├── verifyCode.post.ts # 验证码验证
│   │   │   ├── verify-token.get.ts # 验证Token
│   │   │   └── reset.ts          # 密码重置
│   │   ├── articles/             # 文章公开API
│   │   │   ├── index.get.ts      # 获取文章列表
│   │   │   └── [slug].get.ts     # 获取文章详情
│   │   ├── projects/             # 项目公开API
│   │   │   ├── [slug].get.ts     # 获取项目详情
│   │   │   ├── related.get.ts    # 相关项目推荐
│   │   │   └── like.post.ts      # 项目点赞
│   │   ├── home/                 # 首页数据API
│   │   │   ├── about-me.get.ts
│   │   │   ├── analytics.get.ts
│   │   │   ├── carousels.get.ts
│   │   │   ├── contact-info.get.ts
│   │   │   ├── footer.get.ts
│   │   │   ├── galleries.get.ts
│   │   │   ├── heroSection.get.ts
│   │   │   ├── projects.get.ts
│   │   │   ├── resume.get.ts
│   │   │   ├── stats.get.ts
│   │   │   ├── visits.get.ts
│   │   │   └── visits.post.ts
│   │   ├── upload/               # 文件上传API
│   │   │   └── index.post.ts
│   │   ├── files/                # 文件管理API
│   │   ├── galleries/            # 图库API
│   │   ├── resources/            # 资源API
│   │   ├── wall-messages/        # 留言API
│   │   ├── skills/               # 技能API
│   │   ├── skill-categories/     # 技能分类API
│   │   ├── technologies/         # 技术标签API
│   │   └── categories/           # 分类API
│   ├── database/                 # 数据库配置
│   │   ├── config.ts             # 数据库配置
│   │   ├── healthCheck.ts        # 健康检查
│   │   └── schema.sql            # 完整数据库结构 (14个表)
│   ├── middleware/               # 服务端中间件
│   │   ├── auth.ts               # 认证中间件
│   │   └── fileServer.ts         # 文件服务中间件
│   ├── models/                   # 数据模型 (14个核心模型)
│   │   ├── User.ts               # 用户模型
│   │   ├── Article.ts            # 文章模型
│   │   ├── Category.ts           # 分类模型
│   │   ├── Project.ts            # 项目模型
│   │   ├── Gallery.ts            # 图库模型
│   │   ├── Resource.ts           # 资源模型
│   │   ├── File.ts               # 文件模型
│   │   ├── Carousel.ts           # 轮播图模型
│   │   ├── Setting.ts            # 设置模型
│   │   ├── Skill.ts              # 技能模型
│   │   ├── SkillCategory.ts      # 技能分类模型
│   │   ├── WallMessage.ts        # 留言模型
│   │   ├── VisitHourlyStatistics.ts # 访问统计模型
│   │   └── GalleryImage.ts       # 图库图片模型
│   ├── plugins/                  # 服务端插件
│   │   ├── mysql.ts              # MySQL 插件
│   │   └── redis.ts              # Redis 插件
│   ├── services/                 # 业务服务层
│   │   ├── cacheService.ts       # 缓存服务
│   │   ├── emailService.ts       # 邮件服务
│   │   ├── rateLimitService.ts   # 限流服务
│   │   ├── resetTokenService.ts  # 密码重置服务
│   │   ├── slideVerifyService.ts # 滑动验证码服务
│   │   ├── taskManager.ts        # 任务管理服务
│   │   ├── verificationCodeService.ts # 验证码服务
│   │   ├── visitStatsTask.ts     # 访问统计任务
│   │   └── FileUploadService/   # 文件上传服务
│   │       └── index.ts
│   └── utils/                    # 工具函数
│       ├── auth.ts               # 认证工具
│       ├── response.ts          # 响应工具
│       ├── slug.ts               # Slug 生成工具
│       └── ...
├── public/                       # 静态资源
│   ├── favicon.ico               # 网站图标
│   ├── logo.png                  # Logo
│   └── ...
├── scripts/                      # 脚本文件
│   └── init-db.js                # 数据库初始化脚本
├── uploads/                       # 上传文件目录(本地存储)
├── .env.example                  # 环境变量示例
├── nuxt.config.ts                # Nuxt 配置文件
├── package.json                  # 项目依赖配置
├── tsconfig.json                 # TypeScript 配置
├── tailwind.config.js            # Tailwind CSS 配置
├── eslint.config.mjs             # ESLint 配置
├── docker-compose.yml            # Docker 容器化配置(Redis + 应用)
├── docker-compose.1panel.yml     # 1Panel 面板专用配置
├── Dockerfile                    # 应用容器构建文件
└── README.md                     # 项目说明文档

核心目录说明

app/ - 前端应用

这是 Nuxt 3 的核心目录,包含了所有的前端代码:

  • components/: 全局 Vue 组件,可以在任何页面中使用
  • pages/: 页面组件,自动生成路由
  • layouts/: 布局模板,定义页面的整体结构
  • composables/: 组合式函数,用于复用逻辑
  • middleware/: 路由中间件,在路由切换前执行
  • plugins/: Vue 插件,用于扩展 Vue 功能
  • styles/: 全局样式文件
  • types/: TypeScript 类型定义

server/ - 后端 API

Nuxt 3 的服务器端代码目录,包含所有的 API 接口:

  • api/: API 路由,遵循文件系统路由规则
  • models/: 数据模型,对应数据库表
  • services/: 业务服务层,封装复杂业务逻辑
  • utils/: 工具函数,提供通用功能
  • middleware/: 服务端中间件
  • plugins/: 服务端插件
  • database/: 数据库相关配置和脚本

public/ - 静态资源

静态文件目录,这些文件会被直接映射到根路径:

  • favicon.ico、logo.png 等静态资源
  • 可以直接通过 /filename 访问

API 路由规则

Nuxt 3 使用文件系统路由,API 文件自动映射为路由:

文件路径API 路径HTTP 方法
server/api/auth/login.post.ts/api/auth/loginPOST
server/api/articles/index.get.ts/api/articlesGET
server/api/articles/[id].get.ts/api/articles/:idGET
server/api/admin/articles/index.get.ts/api/admin/articlesGET

数据库表结构

数据库包含 14 个核心表:

表名说明
users用户表
categories分类表
articles文章表
projects项目表
galleries图库表
gallery_images图库图片表
resources资源表
resource_categories资源分类表
files文件管理表
carousels轮播图表
skills技能项表
skill_categories技能分类表
wall_messages留言表
settings系统设置表
visit_hourly_statistics小时级访问统计表

详细字段说明请参考 数据库文档