# nest_server **Repository Path**: zym1214/nest_server ## Basic Information - **Project Name**: nest_server - **Description**: nestjs构建后端的基础框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-29 - **Last Updated**: 2026-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nest Server (Fastify) 基于 **NestJS + Fastify** 构建的基础后端服务框架,提供完整的用户认证、权限管理、国际化支持等功能。 ## 技术栈 - **框架**: NestJS 10.x - **HTTP 引擎**: Fastify - **数据库**: MySQL + TypeORM - **缓存/队列**: Redis + Bull - **认证**: JWT + Passport - **API 文档**: Swagger - **国际化**: nestjs-i18n - **限流**: Throttler - **文件处理**: sharp + fastify-multipart ## 项目结构 ``` src/ ├── common/ # 公共模块 │ ├── constants/ # 常量定义 │ ├── context/ # 请求上下文 │ ├── dto/ # 公共 DTO │ ├── factories/ # 工厂类 │ ├── filters/ # 异常过滤器 │ ├── interceptor/ # 拦截器 │ ├── response/ # 统一响应格式 │ ├── subscriber/ # 数据库订阅者 │ └── utils/ # 工具函数 ├── core/ # 核心模块 │ ├── auth/ # 认证模块 │ ├── captcha/ # 验证码模块 │ ├── email/ # 邮件服务 │ ├── Redis/ # Redis 缓存 │ └── upload/ # 文件上传 ├── modules/ # 业务模块 │ └── user/ # 用户管理 ├── i18n/ # 国际化资源 │ ├── en/ # 英文 │ └── zh/ # 中文 ├── app.controller.ts # 根控制器 ├── app.module.ts # 根模块 └── app.service.ts # 根服务 ``` ## 快速开始 ### 环境要求 - Node.js >= 20.x - MySQL >= 5.7.26 - Redis >= 3.0 ### 安装依赖 ```bash yarn ``` ### 配置环境变量 修改 `.env` 文件配置 ### 数据库初始化 ```bash # 创建数据库 CREATE DATABASE nest_server CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 运行项目后会自动同步实体 ``` ### 启动项目 ```bash # 开发模式 yarn dev # 生产模式 yarn build yarn start:prod # 调试模式 yarn start:debug ``` ### 测试 ```bash # 单元测试 yarn test # 测试覆盖率 yarn test:cov # e2e 测试 yarn test:e2e ``` ## API 文档 启动项目后访问 Swagger 文档: ``` http://localhost:3000/swagger ``` ## 功能特性 - ✅ **用户认证**: JWT Token 认证,支持刷新 Token - ✅ **权限管理**: 基于角色的访问控制 (RBAC) - ✅ **国际化**: 支持中英文切换 - ✅ **限流保护**: 防止 API 恶意调用 - ✅ **文件上传**: 支持图片处理和缩略图生成 - ✅ **邮件服务**: 支持发送验证码和通知邮件 - ✅ **验证码**: SVG 图形验证码 - ✅ **队列系统**: Bull 异步任务队列 - ✅ **全局异常处理**: 统一错误响应格式 ## 默认账号 通过 `sql/init.sql` 初始化后: - **用户名**: admin - **密码**: 123123 ## 许可证 MIT License