一个基于 Vue 3 + Element Plus + Express + MongoDB 的商城后台管理系统练习项目。
这个项目采用前后端分离结构,包含登录、分类管理、商品管理等基础后台功能,适合作为入门级全栈练手项目。
- 管理员登录
- 分类管理
- 分类列表
- 添加分类
- 编辑分类
- 启用 / 禁用分类
- 删除分类
- 商品管理
- 商品列表
- 按分类筛选
- 按关键词搜索
- 添加商品
- 编辑商品
- 上架 / 下架商品
- 删除商品
- 商品分页
- 商品图片预览
- Vue 3
- Vue Router 4
- Element Plus
- Axios
- Vite
- Node.js
- Express
- Mongoose
- JSON Web Token
- CORS
- MongoDB
mall_admin
├─ admin-client # 前端项目
│ ├─ src
│ │ ├─ api # 接口封装
│ │ ├─ router # 路由配置
│ │ ├─ utools # axios 请求封装
│ │ └─ views # 页面组件
│ └─ vite.config.js # Vite 配置和代理
├─ admin-server # 后端项目
│ ├─ config # 数据库配置
│ ├─ middleware # 鉴权中间件
│ ├─ models # mongoose 数据模型
│ └─ app.js # 服务入口
└─ README.md
git clone <your-repo-url>
cd mall_admin后端默认连接本地 MongoDB:
mongodb://localhost:27017/mall_admin
请先确认本地 MongoDB 服务已经启动。
cd admin-server
npm install
node app.js默认运行端口:
http://localhost:4000
新开一个终端:
cd admin-client
npm install
npm run dev默认访问地址:
http://localhost:5173
username: admin
password: 123456
POST /api/login
GET /api/categoriesPOST /api/categoriesPUT /api/categories/:idDELETE /api/categories/:id
GET /api/productsPOST /api/productsPUT /api/products/:idDELETE /api/products/:id
- 前端通过 Vite 代理将
/api请求转发到后端4000端口。 - 登录后会把 token 存到
localStorage中,请求时自动携带到请求头。 - 商品图片目前采用 base64 的方式直接保存,适合练手项目,不适合正式生产环境。
- 删除分类时,如果该分类下仍然存在商品,后端会阻止删除,避免产生脏数据。