# LifeRecordAPI **Repository Path**: lu_quanhua/life-record-api ## Basic Information - **Project Name**: LifeRecordAPI - **Description**: 本项目基于Nodejs和TS的Nestjs框架开发的接口项目,旨在打造一个家庭必备微信小程序,与家庭深度绑定,是一款集美食教程、养生护理、旅游攻略于一体的综合性生活指南平台。面向追求生活品质的用户群体,提供结构化、易查找、可互动的内容服务,解决家庭成员在“吃什么、如何健康、去哪玩”等方面的决策困难,致力于成为用户身边的“生活全能助手”。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-18 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs, Nestjs, WebSocket, MySQL, Redis ## README ```markdown # Life Record API 项目文档 ## 项目简介 本项目是一个基于 [NestJS](https://nestjs.com/) 框架构建的后端服务,旨在为“生活记录”类应用提供完整的 API 支持。项目涵盖了用户认证、作品管理、评论系统、好友系统、私信聊天、通知系统、微信登录、Token 无感刷新等核心功能模块。 项目采用模块化设计,遵循 NestJS 的最佳实践,具备良好的可扩展性和可维护性。后端使用 TypeScript 编写,结合 TypeORM 进行数据库操作,支持 PostgreSQL、MySQL 等主流数据库。 --- ## 技术栈 - **框架**:[NestJS](https://nestjs.com/) - **语言**:TypeScript - **数据库**:PostgreSQL / MySQL(通过 TypeORM) - **认证机制**:JWT + 双 Token(Access Token + Refresh Token) - **实时通信**:WebSocket(用于聊天和通知) - **日志**:Winston - **代码规范**:ESLint + Prettier - **构建工具**:npm / Docker --- ## 功能模块概览 ```bash | 模块 | 功能描述 | |------|----------| | **Auth** | 用户注册、登录、Token 管理、微信登录 | | **User** | 用户资料管理、密码修改 | | **Works** | 作品发布、管理、点赞、收藏 | | **Comments** | 评论系统,支持嵌套回复 | | **Friends** | 好友系统,支持添加、拉黑、搜索 | | **Messages** | 私信聊天系统,支持 WebSocket 实时推送 | | **Notifications** | 系统通知,支持 WebSocket 实时推送 | | **Upload** | 文件上传(图片、视频等) | | **WebSocket** | 实时通信支持,用于聊天与通知推送 | --- ``` ## 项目结构 ```bash src/ ├── common/ # 公共模块(装饰器、过滤器、工具类等) ├── config/ # 配置文件(JWT、日志、数据库等) ├── database/ # 数据库迁移与实体 ├── modules/ # 功能模块 │ ├── auth/ # 认证模块 │ ├── works/ # 作品模块 │ ├── comments/ # 评论模块 │ ├── friends/ # 好友模块 │ ├── messages/ # 消息模块 │ ├── notifications/ # 通知模块 │ ├── upload/ # 上传模块 ├── types/ # 类型定义 ├── main.ts # 应用入口 ``` --- ## 开发环境搭建 ### 1. 安装依赖 ```bash $ npm install ``` ### 2. 配置环境变量 复制 `.env.development` 为 `.env` 并根据实际情况修改数据库连接、JWT 配置等。 ### 3. 数据库迁移 ```bash $ npm run typeorm migration:run ``` ### 4. 启动开发服务器 ```bash # 开发模式 $ npm run start # 热重载模式 $ npm run start:dev # 生产模式 $ npm run start:prod ``` --- ## 接口文档 - **Swagger UI**:`/api-docs`(需启用 `swagger` 模块) - **接口格式**:JSON - **错误处理**:统一返回 `ApiResponse` 格式,包含 `code`、`message`、`data` 字段 --- ## WebSocket 实时通信 本项目支持 WebSocket 实时消息推送,包括: - 聊天消息 - 消息已读回执 - 用户输入状态 - 系统通知(如好友请求、点赞、评论等) 连接地址:`/ws` --- ## Token 无感刷新机制 采用双 Token(Access Token + Refresh Token)机制,支持自动刷新 Token,保障用户长时间在线体验。Refresh Token 存储于 HttpOnly Cookie 中,防止 XSS 攻击。 --- ## 微信小程序登录支持 支持微信小程序一键登录,集成 `code2Session` 验证机制,可获取用户唯一标识(`openid`、`unionid`)和手机号。 --- ## 测试 ```bash # 单元测试 $ npm run test # E2E 测试 $ npm run test:e2e # 测试覆盖率 $ npm run test:cov ``` --- ## 部署 ### Docker 部署 项目提供 `Dockerfile`,可使用 Docker 部署: ```bash $ docker build -t life-record-api . $ docker run -p 3000:3000 life-record-api ``` ### 生产环境部署建议 - 使用 Nginx 做反向代理 - 配置 HTTPS - 使用 PM2 管理进程 - 配置日志收集与监控 - 使用 Redis 缓存 Token 与会话信息 --- ## 相关文档 - [Token 无感刷新系统实现文档](TOKEN_REFRESH_README.md) - [微信登录 API 使用指南](WECHAT_LOGIN_API_GUIDE.md) - [WebSocket 实时通知系统使用指南](WEBSOCKET_NOTIFICATIONS_GUIDE.md) - [聊天功能 WebSocket 实时推送指南](CHAT_WEBSOCKET_GUIDE.md) - [前端 Token 无感刷新集成指南](FRONTEND_TOKEN_REFRESH_GUIDE.md) - [作品系统 API 使用指南](WORKS_API_GUIDE.md) - [评论系统 API 使用指南](COMMENTS_API_GUIDE.md) - [好友系统 API 使用指南](FRIENDS_API_GUIDE.md) - [消息系统 API 使用指南](MESSAGES_API_GUIDE.md) --- ## 开源协议 本项目采用 [MIT License](https://opensource.org/licenses/MIT),欢迎使用、修改和贡献代码。 --- ## 联系我们 - **作者**:[lu_quanhua](https://gitee.com/lu_quanhua) - **项目地址**:[https://gitee.com/lu_quanhua/life-record-api](https://gitee.com/lu_quanhua/life-record-api) - **Issue 跟踪**:[Issue](https://gitee.com/lu_quanhua/life-record-api/issues) --- 感谢使用本项目,如有任何问题或建议,欢迎提交 Issue 或 Pull Request! ```