# XiaoShiLiu **Repository Path**: Fan_Fan_Fan8/XiaoShiLiu ## Basic Information - **Project Name**: XiaoShiLiu - **Description**: 一个高仿小红书的图文社区项目,支持图文发布、社交互动等核心功能,旨在提供从前端到后端的完整实践范本 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2025-12-05 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

logo

XiaoShiLiu

---

基于 Express + Vue 前后端分离仿小红书项目

一个高仿小红书的图文社区项目,支持图文发布、社交互动等核心功能,旨在提供从前端到后端的完整实践范本

演示网站 · 视频介绍

简体中文|English|繁體中文

> **声明** > 本项目基于 [GPLv3 协议](./LICENSE),免费开源,仅供学习交流,禁止转卖,谨防受骗。如需商用请保留版权信息,确保合法合规使用,运营风险自负,与作者无关。 --- > 📁 **项目结构说明**:本项目包含完整的前后端代码,前端位于 `vue3-project/` 目录,后端位于 `express-project/` 目录。详细结构请查看 [项目结构文档](./doc/PROJECT_STRUCTURE.md)。 ## 项目展示 ### PC端界面
PC端界面1 PC端界面2 PC端界面3
PC端界面4 PC端界面5 PC端界面6
PC端界面7 PC端界面8 PC端界面9
PC端界面10 PC端界面11 PC端界面12
PC端界面13 PC端界面14 PC端界面15
PC端界面16 PC端界面17 PC端界面18
### 移动端界面
移动端界面1 移动端界面2 移动端界面3 移动端界面4
移动端界面5 移动端界面6 移动端界面7 移动端界面8
移动端界面9 移动端界面10 移动端界面11 移动端界面12
## 项目文档 | 文档 | 说明 | |------|------| | [部署指南](./doc/DEPLOYMENT.md) | 部署配置和环境搭建说明 | | [项目结构](./doc/PROJECT_STRUCTURE.md) | 项目目录结构架构说明 | | [数据库设计](./doc/DATABASE_DESIGN.md) | 数据库表结构设计文档 | | [API接口文档](./doc/API_DOCS.md) | 后端API接口说明和示例 | ## 项目亮点 - **工程化:** 环境配置、代码规范、构建与产物优化的完整流程 - **业务能力:** 鉴权流程、路由守卫、状态管理与接口封装 - **体验优化:** 骨架屏、懒加载、预加载、无障碍与响应式适配 - **组件与分层:** 可复用组件拆分、按领域分组与别名引入 - **后台管理:** 基础CRUD、数据管理与配置面板,支持后续扩展权限与统计 - **快速部署:** 基于 Docker 的一键部署方案,支持多环境配置与自动化部署 ## 技术栈 > 💡点击可展开查看详细内容
前端技术 - **Vue.js 3** - 前端框架(Composition API) - **Vue Router 4** - 路由管理 - **Pinia** - 状态管理 - **Vite** - 构建工具和开发服务器 - **Axios** - HTTP客户端 - **VueUse** - Vue组合式工具库 - **CropperJS** - 图片裁剪 - **Vue3 Emoji Picker** - 表情选择器 - **svg-captcha** - 验证码生成器
后端技术 - **Node.js** - 运行环境 - **Express.js** - Web框架 - **MySQL** - 数据库 - **JWT** - 身份认证 - **Multer** - 文件上传 - **bcrypt** - 密码加密 - **CORS** - 跨域资源共享
## 第三方API - **图片存储:** 灌装的示例图片来自 [栗次元图床](https://t.alcy.cc/),提供稳定的图片存储服务 - **图片上传:** 用户上传图片使用了 [夏柔API](https://api.aa1.cn/doc/xinyew_jdtc.html),确保图片上传的稳定性和速度 - **属地查询:** IP属地查询服务使用 [保罗API](https://api.pearktrue.cn/dashboard/detail/290),实现精准的IP属地定位功能 ## 环境要求 | 组件 | 版本要求 | |------|----------| | Node.js | >= 16.0.0 | | MySQL | >= 5.7 | | MariaDB | >= 10.3 | | npm | >= 8.0.0 | | yarn | >= 1.22.0 | | 浏览器 | 支持ES6+ | > 提示:上述为传统本地开发的最低版本要求。若使用 Docker 部署,默认镜像版本如下:MySQL 5.7、Node 18-alpine(前后端构建/运行)、Nginx alpine;Docker >= 20、Docker Compose >= 2。详见[部署指南文档](./doc/DEPLOYMENT.md)。 ## 环境配置 项目使用环境变量进行配置管理,前后端分别有独立的 `.env` 文件: ### 后端配置 (express-project/.env) ```env # 服务器配置 PORT=3001 NODE_ENV=development # 数据库配置 DB_HOST=localhost DB_USER=root DB_PASSWORD=123456 DB_NAME=xiaoshiliu DB_PORT=3306 # JWT配置 JWT_SECRET=xiaoshiliu_secret_key_2025 JWT_EXPIRES_IN=7d REFRESH_TOKEN_EXPIRES_IN=30d # API配置 API_BASE_URL=http://localhost:3001 # 上传配置 UPLOAD_MAX_SIZE=50mb # 图片上传策略 (local: 本地存储, imagehost: 第三方图床, r2: Cloudflare R2) IMAGE_UPLOAD_STRATEGY=imagehost # 视频上传策略 (local: 本地存储, r2: Cloudflare R2) VIDEO_UPLOAD_STRATEGY=local # 本地存储配置 LOCAL_UPLOAD_DIR=uploads LOCAL_BASE_URL=http://localhost:3001 # 视频存储目录 VIDEO_UPLOAD_DIR=uploads/videos # 视频封面存储目录 VIDEO_COVER_DIR=uploads/covers # 第三方图床配置(当IMAGE_UPLOAD_STRATEGY=imagehost时使用) IMAGEHOST_API_URL=https://api.xinyew.cn/api/jdtc IMAGEHOST_TIMEOUT=60000 # Cloudflare R2 配置(当IMAGE_UPLOAD_STRATEGY=r2或VIDEO_UPLOAD_STRATEGY=r2时使用) R2_ACCESS_KEY_ID=your_r2_access_key_id_here R2_SECRET_ACCESS_KEY=your_r2_secret_access_key_here R2_ENDPOINT=https://your_account_id.r2.cloudflarestorage.com R2_BUCKET_NAME=your_bucket_name_here R2_ACCOUNT_ID=your_account_id_here R2_REGION=auto # 可选:如果有自定义域名,可以设置 R2_PUBLIC_URL # R2_PUBLIC_URL=https://your-custom-domain.com # CORS配置 CORS_ORIGIN=http://localhost:5173 ``` ### 前端配置 (vue3-project/.env) ```env # API基础URL VITE_API_BASE_URL=http://localhost:3001/api # 是否使用真实API VITE_USE_REAL_API=true # 应用标题 VITE_APP_TITLE=小石榴图文社区 ``` > 💡 **配置说明**: > - 后端支持本地存储、第三方图床和 Cloudflare R2 三种上传策略 > - 图片和视频可以分别配置不同的上传策略 > - 前端使用 Vite 环境变量,变量名需以 `VITE_` 开头 > - 详细配置说明请参考 [部署指南](./doc/DEPLOYMENT.md) ### 1. 安装依赖 ```bash # 使用 cnpm或npm cnpm install # 或使用 yarn yarn install ``` ### 2. 启动开发服务器 ```bash # 启动开发服务器 npm run dev # 或使用 yarn yarn dev ``` 开发服务器将在 `http://localhost:5173` 启动 ### 3. 构建生产版本 ```bash # 构建生产版本 npm run build # 预览生产版本 npm run preview ``` > ⚠️ **重要提醒**:前端项目需要配合后端服务使用,详细配置请查看 [部署指南](./doc/DEPLOYMENT.md) ## Star历史 [![Star History Chart](https://api.star-history.com/svg?repos=ZTMYO/XiaoShiLiu&type=Date&theme=dark)](https://github.com/ZTMYO/XiaoShiLiu) ---
Copyright © 2025 - **XiaoShiLiu**\ By ZTMYO\ Made with ❤️ & ⌨️