项目简介
本项目是基于AdonisJS和Vue2构建的电商系统。后端运用TypeScript、AdonisJS框架以及MySQL数据库,前端采用Vue2、TypeScript、Element UI组件库和Vite构建工具。系统采用六边形架构,将应用核心逻辑与使用分离,同时借助RabbitMQ实现消息队列,完成订单系统与库存系统的解耦。
项目的主要特性和功能
- 用户功能:支持用户注册与登录,未登录用户可浏览商品,登录用户能进行商品购买,购买后库存自动减少。提供商品标题和详情的模糊搜索功能。
- 管理功能:管理者登录后可添加商品,还能查看系统日志。
- 消息队列:采用串行和并行处理任务方式,将不必须的业务逻辑异步处理。订单系统下单后将消息写入消息队列,库存系统订阅消息并进行库存操作,实现订单与库存系统解耦。
- 安全机制:使用@adonisjs/lucid的身份验证系统,可通过会话、基本身份验证或API令牌对用户进行身份验证,同时借助@adonisjs/session使用会话或cookies登录用户。
安装使用步骤
后端
- 确保已安装Node.js和npm,复制项目源码到本地。
- 执行
npm install
安装依赖。 - 生成唯一id用于本地使用:
node ace generate:key
,将生成的key复制到.env
文件中,并根据本地环境编辑该文件。 - 创建MySQL数据库:
- 使用
/usr/local/mysql/bin/mysql -u root -p
登录MySQL。 - 执行
show databases;
查看现有数据库,create database shoppong_web;
创建新数据库。
- 使用
- 解决MySQL版本兼容问题(若使用5.7版本):
- 执行
show variables like 'sql_mode' ;
查看当前SQL模式。 - 执行
set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
修改SQL模式。
- 执行
- 创建数据库表:
npm run migrate-up
。 - 启动后端服务:
npm run dev
。
RabbitMQ
- Mac安装:
brew install rabbitmq
,若依赖库安装失败,可单独安装。 - 启动服务:
rabbitmq-server
。 - 访问管理界面:打开浏览器访问
http://localhost:15672/#/
,使用账号guest
和密码guest
登录。
前端
- 进入前端项目目录,执行
npm install
安装依赖。 - 启动前端开发服务器,即可在浏览器中访问系统。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】