Cursor快速入门与实战-结合AI大模型的AI自动生成程序项目编程工具
从注册安装开始,直到掌握Cursor的全部基础功能
真正面对零基础学员
从注册安装开始,直到掌握Cursor的全部基础功能
多个从0到1的实战案例
案例开发的整个过程,并且会共享案例中所用到的Prompt 案例内容结合AI大模型
接入Kimi和Coze等,在学习Cursor的同时学习如何创造自己的AI应用除了编程Cursor还能做什么
学习如何用Cursor提高学习和写作效率
案例介绍

ai 适合哪些人群





Cursor目前的局限性
可以惊艳,但要理智看待目前它还不能独立亮成中大型项目
对于复杂的多功能的项目需要分解需求,逐步实现

https://cursor.com/cn/docs/cloud-agent
Cursor 的0.46.8版本升级后,去掉了原来的 Compose和Command模式,它自己是这样解释的:
- Chat 模式
- 对话式交互
- 可以进行连续的对话
- 保持上下文连续性
- 现在的主要模式,整合了之前多个模式的功能
- Compose 模式 (已移除)
- 主要用于编写和生成代码
- 专注于代码创作
- 适合从零开始写代码
- 生成完整的代码文件
- Command 模式 (已移除)
- 命令行式交互
- 执行特定的命令和操作
- 更适合单次任务执行
- 不保持上下文
现在的 Chat 模式是一个整合的模式,它:
- 包含了之前所有模式的功能
- 提供更连贯的对话体验
- 可以同时处理代码生成、编辑和命令执行
- 保持完整的上下文记忆
这种统一的模式设计确实更加简洁和易用,避免了在不同模式之间切换的复杂性。
同时在对话框中可选择Agent、Ask 和 Edit 三种模式:
- agent 模式
- 这是一个代理模式,用于处理和管理用户的请求
- 主要用于执行一系列操作,比如搜索、编辑、运行命令等
- 可以调用多个工具来完成任务
- 能够进行复杂的对话和交互
- ask 模式
- 这是一个问答模式
- 主要用于回答用户的问题
- 不能执行编辑操作
- 适合用于解释代码、提供建议等
- edit 模式
- 这是一个编辑模式
- 专注于代码编辑和修改
- 可以直接修改文件内容
- 适合用于代码重构、bug修复等
举个例子:
- 如果你想了解某段代码的功能,可以使用 ask 模式
- 如果你想修改某个文件的代码,可以使用 edit 模式
- 如果你需要一系列复杂操作(比如搜索代码、分析问题、修改文件),可以使用 agent 模式
siliconflow的使用
- 1.先注册一个siliconflow的账号(注册账号赠送14元)
https://siliconflow.cn/zh-cn/ - 2.做实名认证,实名认证后可以使用免费模型(支持个人认证)
- 3.新建API密钥
- 4.Add Model,Model名称从siliconflow的API文档中复制,而且可以从siliconflow的模型广场中选择免费模型
- 5.Cursor配置中配置Base URL(https://api.siliconflow.cn/v1)和API密钥
可以点击按钮Verify,验证API密钥是否正确 - 6.这个自定义模型可以在Chat和内嵌Chat中使用,但在Composer中无法使用
4.1 设计网站功能和页面图纸
1、生成设计示意图
你能根据文件里的内容帮我生成一个网站UI设计图么。生成的示意图应该按功能拆分,每个功能应该有一个独立的页面,每个示意图单独写到一个文件里,文件名前缀:4.1.2 网站设计示意图-。
2、生成架构文档
@4.1.1 网站功能设计规划 @4.1.2 chat生成的UI示意图 请根据这些文件里的内容帮我生成一个项目代码架构设计文档,文件名:4.1.3 项目代码架构设计文档.txt。需求:
1、根据功能判断是否需要使用后端服务
2、只设计文档中存在的功能,不用增加其它功能
3、文档内容应简单易懂,无需进行复杂设计
如果遇到目录结构截断了文本内容写入的情况,可以增加提示词,将目录结构写到独立的文件中:
4、目录结构的内容写到一个独立文件 4.1.3 网站目录结构.txt
网页UI模仿图.png

4.1.1 网站功能规划
这是一个网站功能规划,网站里应该包含一些常用的小工具,比如:
1. 文件转换
2. 图片压缩
3. 图片裁剪
4. 图片格式转换
5. 图片水印
网站界面应该简洁大方,使用户能够轻松上手,导航菜单位置明显,用户可以快速找到所需功能。
网站菜单应该包括:
1. 文件转换
2. 图片压缩
3. 图片裁剪
4. 图片格式转换
5. 图片水印
4.1.2 网站设计示意图-首页
# 首页设计示意图
+----------------------------------+
| Header |
| Logo 导航菜单 |
+----------------------------------+
| |
| 功能导航区域 |
| +------------------------+ |
| | 文件转换 | |
| | [图标] | |
| | 快速转换各种文件格式 | |
| +------------------------+ |
| | 图片压缩 | |
| | [图标] | |
| | 无损压缩图片 | |
| +------------------------+ |
| | 图片裁剪 | |
| | [图标] | |
| | 自由裁剪图片尺寸 | |
| +------------------------+ |
| | 格式转换 | |
| | [图标] | |
| | 支持多种图片格式转换 | |
| +------------------------+ |
| | 图片水印 | |
| | [图标] | |
| | 添加自定义水印 | |
| +------------------------+ |
| |
+----------------------------------+
| Footer |
+----------------------------------+
4.1.2 网站设计示意图-图片裁剪
# 图片裁剪页面设计示意图
+----------------------------------+
| Header |
| Logo 导航菜单 |
+----------------------------------+
| |
| 图片裁剪工具 |
| +------------------------+ |
| | 裁剪选项 | |
| | 固定比例:[下拉选择] | |
| | 自定义尺寸:[输入框] | |
| +------------------------+ |
| |
| +------------------------+ |
| | 裁剪预览区域 | |
| | | |
| | [图片裁剪区域] | |
| | [缩放控制] | |
| | [旋转控制] | |
| | | |
| +------------------------+ |
| |
| [确认裁剪] [重置] |
| |
+----------------------------------+
| Footer |
+----------------------------------+
4.1.2 网站设计示意图-图片格式转换
# 图片格式转换页面设计示意图
+----------------------------------+
| Header |
| Logo 导航菜单 |
+----------------------------------+
| |
| 图片格式转换工具 |
| +------------------------+ |
| | 支持格式提示 | |
| | JPG/PNG/WebP/GIF等 | |
| +------------------------+ |
| |
| +------------------------+ |
| | 图片上传区域 | |
| | | |
| | [拖拽图片到这里] | |
| | 或 | |
| | [选择图片] | |
| | | |
| +------------------------+ |
| |
| +------------------------+ |
| | 转换选项 | |
| | 目标格式:[下拉选择] | |
| | 图片质量:[滑动条] | |
| +------------------------+ |
| |
+----------------------------------+
| Footer |
+----------------------------------+
4.1.2 网站设计示意图-图片水印
# 图片水印页面设计示意图
+----------------------------------+
| Header |
| Logo 导航菜单 |
+----------------------------------+
| |
| 图片水印工具 |
| +------------------------+ |
| | 水印选项 | |
| | 水印类型:[文字/图片] | |
| | 透明度:[滑动条] | |
| | 位置:[九宫格选择] | |
| | 大小:[滑动条] | |
| +------------------------+ |
| |
| +------------------------+ |
| | 预览区域 | |
| | | |
| | [图片预览] | |
| | [水印预览] | |
| | | |
| +------------------------+ |
| |
| [应用水印] [重置] |
| |
+----------------------------------+
| Footer |
+----------------------------------+
4.1.2 网站设计示意图-图片压缩
# 图片压缩页面设计示意图
+----------------------------------+
| Header |
| Logo 导航菜单 |
+----------------------------------+
| |
| 图片压缩工具 |
| +------------------------+ |
| | 压缩选项 | |
| | 压缩质量:[滑动条] | |
| | 保持尺寸:[开关] | |
| +------------------------+ |
| |
| +------------------------+ |
| | 图片上传区域 | |
| | | |
| | [拖拽图片到这里] | |
| | 或 | |
| | [选择图片] | |
| | | |
| +------------------------+ |
| |
| +------------------------+ |
| | 预览区域 | |
| | [原图] | [压缩后] | |
| | 大小对比 | |
| +------------------------+ |
| |
+----------------------------------+
| Footer |
+----------------------------------+
4.1.2 网站设计示意图-文件转换
# 文件转换页面设计示意图
+----------------------------------+
| Header |
| Logo 导航菜单 |
+----------------------------------+
| |
| 文件转换工具 |
| +------------------------+ |
| | 支持格式提示 | |
| | Word/PDF/Excel/TXT等 | |
| +------------------------+ |
| |
| +------------------------+ |
| | 文件上传区域 | |
| | | |
| | [拖拽文件到这里] | |
| | 或 | |
| | [选择文件] | |
| | | |
| +------------------------+ |
| |
| +------------------------+ |
| | 转换选项 | |
| | 目标格式:[下拉选择] | |
| | [开始转换] | |
| +------------------------+ |
| |
+----------------------------------+
| Footer |
+----------------------------------+
4.1.3 网站目录结构
# 网站目录结构
├── public/ # 静态资源
├── src/ # 源代码
│ ├── components/ # 公共组件
│ │ ├── Header/ # 页头组件
│ │ ├── Footer/ # 页脚组件
│ │ └── Upload/ # 上传组件
│ │
│ ├── pages/ # 页面组件
│ │ ├── Home/ # 首页
│ │ ├── FileConvert/ # 文件转换
│ │ ├── ImageCompress/# 图片压缩
│ │ ├── ImageCrop/ # 图片裁剪
│ │ ├── ImageFormat/ # 图片格式转换
│ │ └── ImageWatermark/# 图片水印
│ │
│ ├── services/ # API 服务
│ │ ├── fileService.js
│ │ └── imageService.js
│ │
│ ├── utils/ # 工具函数
│ │ ├── compress.js # 压缩工具
│ │ ├── format.js # 格式转换
│ │ └── watermark.js # 水印工具
│ │
│ ├── styles/ # 样式文件
│ │ ├── global.css
│ │ └── variables.css
│ │
│ ├── App.js # 应用入口
│ └── index.js # 项目入口
│
├── server/ # 后端代码(如需要)
│ ├── controllers/ # 控制器
│ ├── routes/ # 路由
│ ├── services/ # 服务
│ └── index.js # 服务入口
│
├── package.json
└── README.md
4.1.3 项目代码架构设计文档
# 项目代码架构设计文档
## 1. 系统架构概述
### 1.1 前端架构
- 使用 React.js 构建单页面应用
- 使用 Ant Design 组件库实现界面
- 使用 React Router 实现路由管理
### 1.2 后端需求分析
以下功能需要后端服务支持:
- 文件转换:需要后端处理文件转换
- 图片压缩:可以纯前端实现
- 图片裁剪:可以纯前端实现
- 图片格式转换:需要后端处理复杂格式转换
- 图片水印:可以纯前端实现
### 1.3 技术选型
前端技术栈:
- React.js
- Ant Design
- React Router
- Axios
后端技术栈:
- Node.js
- Express
- Multer(文件上传)
- Sharp(图片处理)
## 2. 功能模块设计
### 2.1 文件转换模块
- 需要后端服务
- 功能:文档格式转换
- 关键技术:
- 前端:文件上传组件
- 后端:文件格式转换库
### 2.2 图片压缩模块
- 纯前端实现
- 功能:图片压缩
- 关键技术:
- browser-image-compression 库
- Canvas API
### 2.3 图片裁剪模块
- 纯前端实现
- 功能:图片裁剪
- 关键技术:
- react-image-crop 组件
- Canvas API
### 2.4 图片格式转换模块
- 需要后端服务
- 功能:图片格式转换
- 关键技术:
- 前端:文件上传预览
- 后端:Sharp 库处理图片
### 2.5 图片水印模块
- 纯前端实现
- 功能:添加水印
- 关键技术:
- Canvas API
- fabric.js 库
## 3. 数据流设计
### 3.1 前端数据流
- 使用 React Context 管理全局状态
- 使用 React Hooks 管理组件状态
### 3.2 前后端交互
- RESTful API
- 文件上传使用 FormData
- 响应格式统一为 JSON
## 4. 安全性考虑
- 文件上传限制
- 文件大小限制
- 文件类型校验
- 请求频率限制
- 文件格式验证
## 5. 性能优化
- 图片懒加载
- 组件按需加载
- 大文件分片上传
- 浏览器缓存策略
提示词-4.2 安装开发环境并生成首页
@4.1.1 网站功能规划 @4.1.2 网站设计示意图-首页 @4.1.3 网站目录结构.txt @4.1.3 项目代码架构设计文档.txt @网页UI模仿图.png
请根据这些文件生成网站的首页,如果需要后端服务的话,也需要生成后端服务的代码。网站界面应该简洁美观,看起来专业一些。界面美化可参考图片。
如果需要安装第三方的组件或者类库,那么请帮我安装。
提示词-4.3 生成后端服务及文件转换功能
@4.1.1 网站功能规划 @4.1.2 网站设计示意图-文件转换 @4.1.3 网站目录结构.txt @4.1.3 项目代码架构设计文档.txt @网页UI模仿图.png
请根据这些文件的内容和要求,帮我生成文件转换功能,如果有后端服务,需要同时生成后端代码。页面风格可参考图片。
提示词-4.4 生成图片压缩功能
@4.1.1 网站功能规划 @4.1.2 网站设计示意图-图片压缩 @4.1.3 网站目录结构.txt @4.1.3 项目代码架构设计文档.txt @网页UI模仿图.png
请根据这些文件的内容和要求,帮我生成图片压缩功能,如果有后端服务,需要同时生成后端代码。页面风格可参考图片。


感觉cursor 会一直运行,并去解决问题,看最终的解决效果 。


感觉我什么也没有做,就用自然语言和cursor 聊天就实现了功能 。
对应的git代码如下:
https://gitee.com/quyixiao/cursor_selft_build_web
开发Chrome浏览器插件
插件需求
开发一个Chrome插件,具有以下两个功能:
1、选中页面的内容,然后点击插件的按钮,可以翻译选中的内容。
2、总结页面的内容。
要求:
1、翻译功能和总结功能都使用kimi api,请参见Kimi api文档
2、打开在侧边栏中。
一. kimi的API申请
接入说明:https://platform.moonshot.cn/
步骤:
1、注册账号
2、进入用户中心
3、账号总览中可以看到免费赠送的15元。
4、创建API KEY
创建好的KEY要先保存好。
二. 创建DOC:kimi api
打开设置,找到Doc,Add doc
https://platform.moonshot.cn/docs
三、生成代码的提示词
1、第一次生成代码,记得@Doc
@插件需求 @UI示意图 @kimi api 请按需求和示意图生成插件的代码
2、生成空白图标
我没有image图标,如果程序必须要有图标的话,请你帮我生成对应图标,如果你也没有图标的话,请生成空白图标文件,以免程序执行时出错。
UI示意图
Chrome插件 UI 设计示意图
1. 侧边栏主界面
-------------------
宽度: 320px
高度: 100vh(全屏高度)
界面布局(从上到下):
┌──────────────────────────┐
│ Kimi 智能助手 │ <- 顶部标题栏(#2196F3背景色)
├──────────────────────────┤
│ [翻译模式] [总结模式] │ <- 模式切换按钮组(Material Design风格)
├──────────────────────────┤
│ │
│ │
│ 内容显示区域 │ <- 主要内容区(白色背景)
│ (翻译/总结结果) │
│ │
│ │
├──────────────────────────┤
│ Powered by Kimi API │ <- 底部信息栏(浅灰色)
└──────────────────────────┘
设计要点:
1. 配色方案
- 主色:#2196F3(蓝色)
- 背景色:#FFFFFF(白色)
- 文字颜色:#333333(深灰)
- 次要文字:#666666(中灰)
2. 交互元素
- 模式切换按钮:圆角矩形,悬停效果
- 内容区域:支持滚动,带有优雅的滚动条样式
- 响应式布局:适应不同屏幕高度
3. 字体
- 标题:16px
- 正文:14px
- 按钮文字:14px
4. 其他细节
- 所有按钮和交互元素都有hover效果
- 加载状态时显示优雅的加载动画
- 错误提示使用温和的红色警告样式
- 支持深色模式切换
总结模式

翻译模式

相应的代码 :
https://gitee.com/quyixiao/chrome_plugin/tree/master/%E6%A1%88%E4%BE%8B-Chrome%E6%8F%92%E4%BB%B6
开发商城微信小程序
6.01 搭建微信小程序开发环境
1. 注册微信小程序账号
微信公众平台:https://mp.weixin.qq.com/
开发者工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
个人账号没有支付功能,需要企业账号。
6.02 需求设计、示意图设计
一、内嵌对话框生成后台管理系统功能需求
请根据前端的功能需求,帮我生成对应的后台管理系统的功能需求。
要求:
1、功能要与前端对应,确保不缺少必须的功能。
2、将功能细分,给出详细的功能描述。
3、要区分出列表页和编辑页面的层级关系,编辑页面应从属于列表页面。
4、不需要后台管理用户的角色管理
二、内嵌对话框生成后端服务的功能需求
请根据前端功能需求,帮我生成后端服务的API规划设计。
要求:
1、API要与功能对应,确保不缺少API。
2、要给出API的定义信息,包括:API名称、API路径、API的功能描述
三、生成UI示意图
@首页.jpg @分类.jpg @购物车.jpg @我的.jpg @商城小程序的项目需求.txt
请根据前端需求,参考图片中的内容,帮我生成UI示意图。
要求:
1、请以需求和图片为准,不要增加额外的功能。
2、以线框图样式生成UI示意图。
3、按页面单独写入文件:UI示意图/(页面名称).txt
四、也可以让Composer模仿手绘图,生成UI示意图
@商城小程序的项目需求.txt @分类.jpg @购物车.jpg @首页.jpg @我的.jpg
请参考图片风格和布局,再结合前端需求,帮我生成 其它剩余没有实现UI示意图的界面 的线框图样式的UI示意图。
要求:
1、请以需求为准,不要增加额外的功能。
2、以线框图样式生成UI示意图。
3、每个页面下方都要有菜单导航,菜单包括:首页、分类、购物车、我的
4、文件写入 UI示意图/(页面名称).txt
6.03 架构设计、数据库设计
一、创建架构设计文档
@UI示意图 @商城小程序的项目需求.txt
请根据项目需求生成一个项目技术架构设计文档。文件写入:项目架构设计文档.txt
要求:
1、不用做复杂设计,不需要考虑高并发问题。
2、要考虑安全性问题,要能避免常见的针对小程序和网站的网络攻击。
3、架构设计要简洁明了,让不懂技术的人也能看懂。
4、如果有项目的目录结构,可以输出到单独文件中,文件名前缀如:项目目录结构-前端/后端/管理后台
二、设计多环境的配置方案
不同的开发环境应该是有各自的配置文件,这样在部署的时候可以通过调整启动参数或者环境变量来区分程序应该使用哪个环境的配置文件。
请你按上面需求详细的设计该部分。
三、创建数据库建表SQL
请帮我生成数据库建表SQL,数据库名为mall。
写入文件:数据库建表语句.sql
要求:
1、字段要有中文注释
2、为管理后台用户表增加一条数据,用户名为admin,密码的明文为admin,但是应该以MD5密文存储在数据库中。
6.04 编码-后台管理系统.tscproj
一、生成管理后台的基础结构
请根据 @项目目录结构-管理后台.txt 生成后台管理系统的项目文件。
要求:
1、项目写入目录 mall-admin
2、项目技术栈请依照 @商城小程序的项目需求.txt 中的技术栈
3、创建启动后台管理系统所必要的文件,具体功能的页面可以先不创建
二、生成管理后台的功能页面
需要创建后台管理系统的相关功能页面和代码。
要求:
1、菜单栏在左侧以树形结构展示
2、所有功能所需表结构依照 @数据库建表语句.sql
3、所有功能所需API依照后台管理系统API文档
4、如果遇到图标文件,请帮我创建空图标,以免影响程序运行
6.05 编码-完善后台登录和轮播图.tscproj
一、创建.cursorignore文件
请生成.cursorignore文件,罗列出常见的提交Git时的可忽略文件和目录,
文件写入:.cursorignore
二、创建.cursorrules文件
请将以下信息写入到文件.cursorrules
每一次会话请求结束后进行会话总结,无论生成新文件还是修改已有文件都需要做总结,
并将总结内容Append写入到README.md文件中(说明文件中的内容是累积增加的)。
总结内容应包括:
- 会话的主要目的
- 完成的主要任务
- 关键决策和解决方案
- 使用的技术栈
- 修改了哪些文件
# 角色
- 你是一个经验丰富的程序员,负责开发微信小程序商城项目。
- 你负责开发微信小程序商城项目,并负责API后端服务和后台管理系统。
三、生成不同环境的配置文件
1. 开发环境
\- 本地开发环境
\- 配置文件: config.development.js
\- 环境变量: NODE_ENV=development
\- 特点配置:
\- 数据库: 本地MySQL
\- 文件上传: 本地存储
\- 日志级别: debug
\- API地址: localhost
\- 调试模式: 开启
\- 生产环境
\- 配置文件: config.production.js
\- 环境变量: NODE_ENV=production
\- 特点配置:
\- 数据库: 生产服务器MySQL集群
\- 文件上传: 云存储
\- 日志级别: debug
\- API地址: mall-server.guoxu.tech
\- 调试模式: 关闭
\- 配置文件加载机制
\- 通过环境变量NODE_ENV判断当前环境
\- 根据环境加载对应配置文件:
\```js
// config/index.js
const env = process.env.NODE_ENV || 'development'
const config = require(`./config.${env}.js`)
module.exports = config
\```
\- 配置文件合并策略:
\- 基础配置(config.base.js): 存放所有环境通用配置
\- 环境配置(config.development.js/config.production.js): 存放特定环境配置
\- 环境配置覆盖基础配置
\- 配置文件使用:
\```js
// app.js
const config = require('./config')
app.set('port', config.port)
app.set('db', config.database)
\```
\- 敏感配置:
\- 数据库密码、API密钥等敏感信息使用环境变量
\- 通过.env文件管理环境变量
\- 生产环境的.env文件不提交到代码仓库
请根据以上内容,帮我完善代码,要实现多环境的配置文件切换功能。
并且,我的启动方式是使用 node app.js
四、启动后台
cd mall-admin
npm install
node app.js 或者 npm run dev
如果使用node app.js,那么需要先在终端中设置node_env,命令是
$env:NODE_ENV = "development"
$env:NODE_ENV = "production"
6.07 编码-后端API服务.tscproj
一、生成后端服务的基础结构
请根据 @项目目录结构-后端服务.txt 生成后端服务的项目文件。
要求:
1、项目写入目录 mall-server
2、项目技术栈请依照 @商城小程序的项目需求.txt 中的技术栈
3、创建启动后端服务所必要的文件,具体功能的代码可以先不创建
二、生成API代码
请根据 @商城小程序的项目需求.txt 生成后端服务API的代码。
要求:
1、文件结构依照 @项目目录结构-后端服务.txt
2、项目技术栈请依照 @商城小程序的项目需求.txt 中的技术栈
3、API生成依照 @商城小程序的项目需求.txt 中的API后端服务
4、安全机制请依照 @项目架构设计文档.txt 中的安全机制
5、数据库表结构依照 @数据库建表语句.sql
三、配置不同开发环境的配置文件
- 本地开发环境
- 配置文件: config.development.js
- 环境变量: NODE_ENV=development
- 特点配置:
- 数据库: 本地MySQL
- 文件上传: 本地存储
- 日志级别: debug
- API地址: localhost
- 调试模式: 开启
- 生产环境
- 配置文件: config.production.js
- 环境变量: NODE_ENV=production
- 特点配置:
- 数据库: 生产服务器MySQL集群
- 文件上传: 云存储
- 日志级别: debug
- API地址: mall-server.guoxu.tech
- 调试模式: 关闭
- 配置文件加载机制
- 通过环境变量NODE_ENV判断当前环境
- 根据环境加载对应配置文件:
```js
// config/index.js
const env = process.env.NODE_ENV || 'development'
const config = require(`./config.${env}.js`)
module.exports = config
```
- 配置文件合并策略:
- 基础配置(config.base.js): 存放所有环境通用配置
- 环境配置(config.development.js/config.production.js): 存放特定环境配置
- 环境配置覆盖基础配置
- 配置文件使用:
```js
// app.js
const config = require('./config')
app.set('port', config.port)
app.set('db', config.database)
```
- 敏感配置:
- 数据库密码、API密钥等敏感信息使用环境变量
- 通过.env文件管理环境变量
- 生产环境的.env文件不提交到代码仓库
请根据以上内容,帮我完善代码,要实现多环境的配置文件切换功能。
并且,我的启动方式是使用 node app.js
四、启动后端服务
cd mall-server
npm install
node app.js 或者 npm run dev
如果使用node app.js,那么需要先在终端中设置node_env,命令是
$env:NODE_ENV = "development"
$env:NODE_ENV = "production"
6.12 编码-购物车列表
微信公众平台:https://mp.weixin.qq.com/
微信商户平台:https://pay.weixin.qq.com/
6.16 购买服务器并安装宝塔面板
一、ubuntu安装宝塔的命令
1、更新apt
apt update
2、安装curl
apt install -y curl
3、安装宝塔面板
curl -sSO https://download.bt.cn/install/install_panel.sh && sudo bash install_panel.sh
商城微信小程序
商城小程序的项目需求
这是一个商城小程序项目,项目需求如下:
这个项目应该包含三个子项目,分别是:
1. 商城小程序前端(微信小程序原生)
2. 商城小程序的后台管理系统
3. 前端的后端API服务
技术栈设计如下:
1. 商城小程序前端
- 开发框架:微信小程序原生框架
2. 商城小程序后台管理系统(一体化方案)
- 开发框架:Node.js + Express
- UI组件库:Vue.js + Element UI
- 权限认证:Session + Cookie
3. 前端的后端API服务
- 开发框架:Node.js + Express
三个服务的功能
1. 商城小程序前端
1.首页
1.1 轮播图
1.2 推荐商品列表
1.2.1 显示商品名称、图片、价格、库存、加入购物车按钮
1.2.2 点击商品进入商品详情页面
1.3 分类列表(每个分类下面显示商品列表,商品数量不超过3个)
1.3.1 显示分类名称,点击分类名称这一行可以跳转到分类商品列表页面
1.3.2 显示分类下面的商品名称、图片、价格、库存、加入购物车按钮
1.3.3 点击商品进入商品详情页面
2.分类
2.1 显示分类名称,分类图片,点击分类可以跳转到分类商品列表页面
3.购物车列表页
3.1 显示购物车商品名称、图片、价格、数量(可以加减)、删除按钮
3.2 每个购物车商品前面应该有一个选择框,页面的顶部应该有一个全选按钮
3.3 页面的底部应该有一个结算按钮,点击结算按钮可以跳转到订单确认页面
4.我的
4.1 顶部显示用户头像、昵称,这个头像和昵称是通过微信登陆授权获得到的。
4.2 底部显示退出登录按钮,点击退出登录按钮可以退出登录,退出登录后,用户头像和昵称应该消失,顶部应该显示登录按钮
4.3 在头像昵称下方显示我的订单按钮,点击订单按钮跳转到订单列表页
4.4 在我的订单按钮下方显示收货地址按钮,点击收货地址按钮跳转到收货地址列表页
5.商品详情
5.1 显示商品名称、图片、价格、库存、加入购物车按钮、立即购买按钮
5.2 点击加入购物车按钮,将商品添加到购物车列表中
5.3 点击立即购买按钮,直接跳转到订单确认页面
6.分类列表页
6.1 显示分类名称,分类图片,点击分类可以跳转到分类商品列表页
6.2 每一行显示2个分类
7.分类对应的商品列表页
7.1 显示商品名称、图片、价格、库存、加入购物车按钮
7.2 点击商品进入商品详情页面
8.订单列表
8.1 显示订单号、订单状态、订单金额、订单时间、收货地址
9.收货地址列表
9.1 显示收货地址、收货人、联系电话、编辑按钮、删除按钮、设为默认按钮
9.2 点击编辑按钮跳转到收货地址编辑页
9.3 点击删除按钮删除收货地址
9.4 页面底部应该有一个新增收货地址按钮,点击新增收货地址按钮跳转到收货地址编辑页
10.订单确认页
10.1 顶部应该是选择收货地址,如果有默认收货地址,则先默认显示为默认收货地址,如果没有默认收货地址,则显示选择收货地址按钮,点击选择收货地址按钮跳转到收货地址列表页
10.2 收货地址下面应该显示订单中的商品列表信息,包括商品名称、图片、价格、数量、小计
10.3 商品列表信息下面应该显示订单总金额和支付按钮,点击支付按钮启动微信支付流程
2. 商城小程序后台管理系统
1.登录页面
1.1 输入用户名和密码进行登录
1.2 登录成功后跳转到首页
1.3 登录失败显示错误信息
2.轮播图管理
2.1 轮播图列表页
2.1.1 显示轮播图列表,包含图片预览、标题、排序、状态(启用/禁用)、操作按钮
2.1.2 支持新增、编辑、删除操作
2.1.3 支持修改排序和状态
2.2 轮播图编辑页
2.2.1 上传轮播图片
2.2.2 设置标题、排序、状态
2.2.3 设置点击跳转链接
3.商品分类管理
3.1 分类列表页
3.1.1 显示分类列表,包含分类名称、分类图片、排序、状态、操作按钮
3.1.2 支持新增、编辑、删除操作
3.1.3 支持修改排序和状态
3.2 分类编辑页
3.2.1 设置分类名称
3.2.2 上传分类图片
3.2.3 设置排序、状态
4.商品管理
4.1 商品列表页
4.1.1 显示商品列表,包含商品名称、图片、价格、库存、所属分类、上架状态、操作按钮
4.1.2 支持按商品名称、分类搜索
4.1.3 支持新增、编辑、删除操作
4.1.4 支持批量上架/下架操作
4.2 商品编辑页
4.2.1 设置商品基本信息(名称、价格、库存、所属分类)
4.2.2 上传商品主图
4.2.3 商品详情应该是一个富文本编辑框,支持图片上传
4.2.4 设置商品上架状态
5.订单管理
5.1 订单列表页
5.1.1 显示订单列表,包含订单号、下单时间、订单状态、订单金额、收货信息、操作按钮
5.1.2 支持按订单号、订单状态、下单时间范围搜索
5.1.3 支持查看订单详情
5.1.4 支持订单发货操作
5.2 订单详情页
5.2.1 显示订单基本信息(订单号、下单时间、订单状态、支付信息)
5.2.2 显示收货人信息(姓名、电话、地址)
5.2.3 显示订单商品列表(商品名称、图片、价格、数量)
5.2.4 显示订单金额信息
6.数据统计
6.1 销售统计
6.1.1 显示今日、本周、本月销售额
6.1.2 显示销售额趋势图
6.1.3 显示热销商品排行
6.2 订单统计
6.2.1 显示各状态订单数量
6.2.2 显示订单转化率
7. 后台管理系统API
7.1 管理员登录相关API
7.1.1 管理员登录
路径: /admin/login
功能: 管理员账号密码登录
7.1.2 管理员退出
路径: /admin/logout
功能: 管理员退出登录
7.1.3 获取管理员信息
路径: /admin/info
功能: 获取当前登录管理员信息
7.2 轮播图管理API
7.2.1 获取轮播图列表
路径: /admin/banner/list
功能: 获取所有轮播图列表
7.2.2 新增轮播图
路径: /admin/banner/add
功能: 新增轮播图信息
7.2.3 编辑轮播图
路径: /admin/banner/update
功能: 更新轮播图信息
7.2.4 删除轮播图
路径: /admin/banner/delete
功能: 删除指定轮播图
7.2.5 修改轮播图状态
路径: /admin/banner/status
功能: 启用/禁用轮播图
7.2.6 修改轮播图排序
路径: /admin/banner/sort
功能: 修改轮播图显示顺序
7.3 商品分类管理API
7.3.1 获取分类列表
路径: /admin/category/list
功能: 获取所有商品分类
7.3.2 新增分类
路径: /admin/category/add
功能: 新增商品分类
7.3.3 编辑分类
路径: /admin/category/update
功能: 更新分类信息
7.3.4 删除分类
路径: /admin/category/delete
功能: 删除指定分类
7.3.5 修改分类状态
路径: /admin/category/status
功能: 启用/禁用分类
7.3.6 修改分类排序
路径: /admin/category/sort
功能: 修改分类显示顺序
7.4 商品管理API
7.4.1 获取商品列表
路径: /admin/goods/list
功能: 获取商品列表,支持分页和搜索
7.4.2 新增商品
路径: /admin/goods/add
功能: 新增商品信息
7.4.3 编辑商品
路径: /admin/goods/update
功能: 更新商品信息
7.4.4 删除商品
路径: /admin/goods/delete
功能: 删除指定商品
7.4.5 商品上下架
路径: /admin/goods/status
功能: 修改商品上架状态
7.4.6 批量上下架
路径: /admin/goods/batch-status
功能: 批量修改商品上架状态
7.4.7 上传商品图片
路径: /admin/goods/upload-image
功能: 上传商品主图或详情图片
7.5 订单管理API
7.5.1 获取订单列表
路径: /admin/order/list
功能: 获取订单列表,支持分页和搜索
7.5.2 获取订单详情
路径: /admin/order/detail
功能: 获取订单详细信息
7.5.3 订单发货
路径: /admin/order/ship
功能: 订单发货操作,更新物流信息
7.5.4 修改订单状态
路径: /admin/order/status
功能: 修改订单状态
7.6 数据统计API
7.6.1 销售统计
路径: /admin/stats/sales
功能: 获取销售额统计数据
7.6.2 销售趋势
路径: /admin/stats/sales-trend
功能: 获取销售额趋势数据
7.6.3 热销商品
路径: /admin/stats/hot-goods
功能: 获取热销商品排行数据
7.6.4 订单统计
路径: /admin/stats/orders
功能: 获取各状态订单数量
7.6.5 转化率统计
路径: /admin/stats/conversion
功能: 获取订单转化率数据
3. 前端的后端API服务
1. 用户相关API
1.1 用户登录
路径: /api/user/login
功能: 通过微信授权登录获取用户信息
1.2 用户退出
路径: /api/user/logout
功能: 用户退出登录
1.3 获取用户信息
路径: /api/user/info
功能: 获取当前登录用户信息
2. 首页相关API
2.1 获取轮播图列表
路径: /api/banner/list
功能: 获取首页轮播图列表
2.2 获取推荐商品列表
路径: /api/goods/recommend
功能: 获取首页推荐商品列表
2.3 获取首页分类及商品列表
路径: /api/category/home
功能: 获取首页展示的分类及其下的商品列表
3. 分类相关API
3.1 获取分类列表
路径: /api/category/list
功能: 获取所有商品分类
3.2 获取分类商品列表
路径: /api/category/goods
功能: 获取指定分类下的商品列表
4. 商品相关API
4.1 获取商品详情
路径: /api/goods/detail
功能: 获取商品详细信息
4.2 获取商品列表
路径: /api/goods/list
功能: 获取商品列表,支持分页和搜索
5. 购物车相关API
5.1 添加商品到购物车
路径: /api/cart/add
功能: 将商品添加到购物车
5.2 获取购物车列表
路径: /api/cart/list
功能: 获取当前用户的购物车商品列表
5.3 更新购物车商品数量
路径: /api/cart/update
功能: 更新购物车中商品的数量
5.4 删除购物车商品
路径: /api/cart/delete
功能: 从购物车中删除商品
6. 地址相关API
6.1 获取地址列表
路径: /api/address/list
功能: 获取用户的收货地址列表
6.2 添加收货地址
路径: /api/address/add
功能: 新增收货地址
6.3 编辑收货地址
路径: /api/address/update
功能: 修改收货地址信息
6.4 删除收货地址
路径: /api/address/delete
功能: 删除收货地址
6.5 设置默认地址
路径: /api/address/setDefault
功能: 设置默认收货地址
7. 订单相关API
7.1 创建订单
路径: /api/order/create
功能: 创建新订单
7.2 获取订单列表
路径: /api/order/list
功能: 获取用户订单列表
7.3 发起支付
路径: /api/order/pay
功能: 发起微信支付
7.4 确认收货
路径: /api/order/confirm
功能: 确认订单收货
数据库建表语句
-- Active: 1737213233302@@127.0.0.1@3306@mall
-- 创建数据库
CREATE DATABASE IF NOT EXISTS mall DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE mall;
-- 管理员用户表
CREATE TABLE `admin_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(32) NOT NULL COMMENT '密码',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0:禁用 1:启用',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员用户表';
-- 插入管理员账号 (密码admin的MD5值为21232f297a57a5a743894a0e4a801fc3)
INSERT INTO admin_user (username, password) VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3');
-- 小程序用户表
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
openid VARCHAR(100) NOT NULL UNIQUE COMMENT '微信openid',
nickname VARCHAR(50) COMMENT '用户昵称',
avatar_url VARCHAR(255) COMMENT '头像URL',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) COMMENT '小程序用户表';
-- 商品分类表
CREATE TABLE category (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID',
name VARCHAR(50) NOT NULL COMMENT '分类名称',
image_url VARCHAR(255) COMMENT '分类图片',
sort INT DEFAULT 0 COMMENT '排序(数字越大越靠前)',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) COMMENT '商品分类表';
-- 商品表
CREATE TABLE goods (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '商品ID',
category_id INT NOT NULL COMMENT '分类ID',
name VARCHAR(100) NOT NULL COMMENT '商品名称',
price DECIMAL(10,2) NOT NULL COMMENT '商品价格',
stock INT NOT NULL DEFAULT 0 COMMENT '库存数量',
image_url VARCHAR(255) COMMENT '商品主图',
detail TEXT COMMENT '商品详情',
status TINYINT DEFAULT 1 COMMENT '状态(0下架,1上架)',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (category_id) REFERENCES category(id)
) COMMENT '商品表';
ALTER TABLE goods
ADD COLUMN is_recommend TINYINT DEFAULT 0 COMMENT '是否推荐(0不推荐,1推荐)'
AFTER status;
-- 订单表
CREATE TABLE IF NOT EXISTS `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_no` varchar(50) NOT NULL COMMENT '订单号',
`user_id` int(11) NOT NULL COMMENT '用户ID',
`total_amount` decimal(10,2) NOT NULL COMMENT '订单总金额',
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '订单状态:0待支付,1已支付,2已发货,3已完成',
`receiver_name` varchar(50) NOT NULL COMMENT '收货人姓名',
`receiver_phone` varchar(20) NOT NULL COMMENT '收货人电话',
`receiver_address` text NOT NULL COMMENT '收货地址',
`pay_time` datetime DEFAULT NULL COMMENT '支付时间',
`transaction_id` varchar(100) DEFAULT NULL COMMENT '支付交易号',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `order_no` (`order_no`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
-- 订单商品表
CREATE TABLE IF NOT EXISTS `order_goods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_id` int(11) NOT NULL COMMENT '订单ID',
`goods_id` int(11) NOT NULL COMMENT '商品ID',
`goods_name` varchar(100) NOT NULL COMMENT '商品名称',
`goods_image` varchar(255) NOT NULL COMMENT '商品图片',
`goods_price` decimal(10,2) NOT NULL COMMENT '购买时价格',
`quantity` int(11) NOT NULL COMMENT '购买数量',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_goods_id` (`goods_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单商品表';
-- 收货地址表
CREATE TABLE IF NOT EXISTS `address` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户ID',
`receiver_name` varchar(50) NOT NULL COMMENT '收货人姓名',
`receiver_phone` varchar(20) NOT NULL COMMENT '收货人电话',
`province` varchar(50) NOT NULL COMMENT '省份',
`city` varchar(50) NOT NULL COMMENT '城市',
`district` varchar(50) NOT NULL COMMENT '区县',
`detail_address` text NOT NULL COMMENT '详细地址',
`is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认地址:0否,1是',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收货地址表';
-- 购物车表
CREATE TABLE cart (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '购物车ID',
user_id INT NOT NULL COMMENT '用户ID',
goods_id INT NOT NULL COMMENT '商品ID',
quantity INT NOT NULL DEFAULT 1 COMMENT '商品数量',
selected TINYINT DEFAULT 1 COMMENT '是否选中(0未选中,1选中)',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (user_id) REFERENCES user(id),
FOREIGN KEY (goods_id) REFERENCES goods(id)
) COMMENT '购物车表';
-- 轮播图表
CREATE TABLE banner (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '轮播图ID',
image_url VARCHAR(255) NOT NULL COMMENT '图片URL',
link_url VARCHAR(255) COMMENT '跳转链接',
sort INT DEFAULT 0 COMMENT '排序(数字越大越靠前)',
status TINYINT DEFAULT 1 COMMENT '状态(0禁用,1启用)',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) COMMENT '轮播图表';
CREATE TABLE `page_view` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户ID',
`page` varchar(100) NOT NULL COMMENT '页面路径',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '访问时间',
PRIMARY KEY (`id`),
KEY `idx_user_time` (`user_id`, `create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='页面访问记录表';
-- orders表索引
ALTER TABLE orders
ADD INDEX idx_create_time (create_time),
ADD INDEX idx_status (status),
ADD INDEX idx_user_id (user_id),
ADD INDEX idx_create_status (create_time, status);
-- order_goods表索引
ALTER TABLE order_goods
ADD INDEX idx_order_id (order_id),
ADD INDEX idx_goods_id (goods_id),
ADD INDEX idx_price_quantity (goods_price, quantity);
-- goods表索引
ALTER TABLE goods
ADD INDEX idx_status (status),
ADD INDEX idx_category_status (category_id, status);
微信登录示意图

微信授权登录流程图

项目架构设计文档
商城小程序项目架构设计文档
一、项目概述
本项目是一个微信小程序商城系统,包含三个子项目:
1. 商城小程序前端 - 面向用户的购物平台
2. 商城管理后台 - 面向商家的运营管理平台
3. 小程序前端的后端API服务 - 只为小程序前端提供数据服务
二、技术选型
1. 小程序前端
- 开发框架:微信小程序原生框架
- 状态管理:微信小程序内置storage
- 请求库:微信小程序内置request
2. 管理后台
- 开发框架:Node.js + Express
- UI组件库:Vue.js + Element UI
- 权限认证:Session + Cookie
3. 后端服务
- 开发语言:Node.js
- Web框架:Express
三、系统安全设计
1. 身份认证
- 小程序用户:微信登录 + JWT令牌
- 管理后台:账号密码 + Session认证
- 密码加密:使用MD5进行密码加密存储
2. 数据安全
- 使用HTTPS协议传输
- 敏感数据加密存储
- 防止SQL注入:使用参数化查询
- 防止XSS攻击:输入过滤,输出转义
- 防止CSRF攻击:使用Token验证
3. 接口安全
- 接口签名验证
- 请求频率限制
- 数据验证和过滤
- 日志记录和审计
四、数据存储设计
1. MySQL数据库
- 用户信息表
- 商品分类表
- 商品信息表
- 订单信息表 (存储订单基本信息,包含订单号、用户ID、订单状态、支付状态、收货地址、订单总金额等)
- 订单商品表 (存储订单中的商品明细,关联订单信息表的订单号,包含商品ID、购买数量、商品单价等)
- 购物车表
- 收货地址表
- 系统管理表
- 轮播图表
3. 文件存储
- 商品图片
- 轮播图
五、部署架构
1. 开发环境
- 本地开发环境
- 配置文件: config.development.js
- 环境变量: NODE_ENV=development
- 特点配置:
- 数据库: 本地MySQL
- 文件上传: 本地存储
- 日志级别: debug
- API地址: localhost
- 调试模式: 开启
- 生产环境
- 配置文件: config.production.js
- 环境变量: NODE_ENV=production
- 特点配置:
- 数据库: 生产服务器MySQL集群
- 文件上传: 云存储
- 日志级别: debug
- API地址: mall-server.guoxu.tech
- 调试模式: 关闭
- 配置文件加载机制
- 通过环境变量NODE_ENV判断当前环境
- 根据环境加载对应配置文件:
```js
// config/index.js
const env = process.env.NODE_ENV || 'development'
const config = require(`./config.${env}.js`)
module.exports = config
```
- 配置文件合并策略:
- 基础配置(config.base.js): 存放所有环境通用配置
- 环境配置(config.development.js/config.production.js): 存放特定环境配置
- 环境配置覆盖基础配置
- 配置文件使用:
```js
// app.js
const config = require('./config')
app.set('port', config.port)
app.set('db', config.database)
```
- 敏感配置:
- 数据库密码、API密钥等敏感信息使用环境变量
- 通过.env文件管理环境变量
- 生产环境的.env文件不提交到代码仓库
2. 生产环境
- 应用服务器:Node.js服务器
- 数据库服务器:MySQL服务器
六、开发规范
1. 代码规范
- 使用ESLint进行代码检查
- 遵循统一的命名规范
- 编写注释和文档
2. 版本控制
- 使用Git进行版本管理
- 遵循Git Flow工作流
- 规范的提交信息格式
3. 项目管理
- 使用GitHub/GitLab进行协作
- 问题跟踪和任务管理
$env:NODE_ENV = "development"
$env:NODE_ENV = "production"
项目目录结构-管理后台
mall-admin/
├── src/
│ ├── views/ # 页面组件
│ │ ├── login/ # 登录页
│ │ ├── goods/ # 商品管理
│ │ ├── order/ # 订单管理
│ │ └── system/ # 系统设置
│ ├── components/ # 公共组件
│ ├── api/ # API接口
│ ├── utils/ # 工具函数
│ ├── router/ # 路由配置
│ ├── store/ # Vuex状态管理
│ ├── assets/ # 静态资源
│ └── App.vue # 根组件
├── public/ # 公共文件
├── package.json # 项目配置
└── vue.config.js # Vue配置
项目目录结构-后端API
mall-server/
├── src/
│ ├── controllers/ # 控制器
│ │ ├── user.js # 用户相关
│ │ ├── goods.js # 商品相关
│ │ └── order.js # 订单相关
│ ├── models/ # 数据模型
│ ├── routes/ # 路由配置
│ ├── middlewares/ # 中间件
│ │ ├── auth.js # 认证中间件
│ │ └── error.js # 错误处理
│ ├── utils/ # 工具函数
│ ├── config/ # 配置文件
│ └── app.js # 应用入口
├── logs/ # 日志文件
├── uploads/ # 上传文件
├── package.json # 项目配置
└── .env # 环境变量
项目目录结构-小程序前端
mall-miniprogram/
├── pages/ # 页面文件
│ ├── index/ # 首页
│ ├── category/ # 分类页
│ ├── cart/ # 购物车
│ ├── user/ # 个人中心
│ ├── goods/ # 商品相关页面
│ ├── order/ # 订单相关页面
│ └── address/ # 地址相关页面
├── components/ # 公共组件
│ ├── goods-item/ # 商品项组件
│ ├── cart-item/ # 购物车项组件
│ └── address-item/ # 地址项组件
├── utils/ # 工具函数
│ ├── request.js # 请求封装
│ ├── auth.js # 登录认证
│ └── util.js # 通用工具函数
├── config/ # 配置文件
│ └── config.js # 全局配置
├── assets/ # 静态资源
│ ├── images/ # 图片资源
│ └── styles/ # 公共样式
├── app.js # 小程序入口文件
├── app.json # 小程序配置文件
└── app.wxss # 小程序全局样式
小程序授权登录示意图

小程序授权登录示意图

头像

手稿示意图
分类

购物车

首页

我的

UI示意图
[订单列表页面布局]
┌─────────────────────────────┐
│ 我的订单 │
├─────────────────────────────┤
│ [订单1] │
│ 订单号: 202403100001 │
│ 订单状态: 待付款 │
│ 订单金额: ¥xxx.xx │
│ 下单时间: 2024-03-10 │
│ 收货地址: xx省xx市xx区 │
├─────────────────────────────┤
│ [订单2] │
│ 订单号: 202403100002 │
│ 订单状态: 待发货 │
│ 订单金额: ¥xxx.xx │
│ 下单时间: 2024-03-10 │
│ 收货地址: xx省xx市xx区 │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
订单确认
[订单确认页面布局]
┌─────────────────────────────┐
│ 确认订单 │
├─────────────────────────────┤
│ [收货地址] │
│ 收货人: 张三 │
│ 电话: 138****8888 │
│ 地址: xx省xx市xx区 │
│ [更换地址 >] │
├─────────────────────────────┤
│ 商品清单 │
├─────────────────────────────┤
│ [商品1] │
│ 商品图片 商品名称 │
│ ¥价格 × 数量 │
│ 小计: ¥xxx.xx │
├─────────────────────────────┤
│ [商品2] │
│ 商品图片 商品名称 │
│ ¥价格 × 数量 │
│ 小计: ¥xxx.xx │
├─────────────────────────────┤
│ 合计: ¥xxx.xx │
│ [支付] │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
分类
[分类页面布局]
┌─────────────────────────────┐
│ 轮播图区域 │
│ ●●●●● (轮播图指示器) │
├─────────────────────────────┤
│ 商品分类 │
├─────────────────────────────┤
│ [分类1] [分类2] │
│ 分类图片 分类图片 │
│ 分类名称 分类名称 │
├─────────────────────────────┤
│ [分类3] [分类4] │
│ 分类图片 分类图片 │
│ 分类名称 分类名称 │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
分类商品列表
[分类商品列表页面布局]
┌─────────────────────────────┐
│ 分类名称 │
├─────────────────────────────┤
│ [商品1] [商品2] │
│ 商品图片 商品图片 │
│ 商品名称 商品名称 │
│ ¥价格 ¥价格 │
│ 库存:xxx件 库存:xxx件 │
│ [加入购物车] [加入购物车] │
├─────────────────────────────┤
│ [商品3] [商品4] │
│ 商品图片 商品图片 │
│ 商品名称 商品名称 │
│ ¥价格 ¥价格 │
│ 库存:xxx件 库存:xxx件 │
│ [加入购物车] [加入购物车] │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
购物车
[购物车页面布局]
┌─────────────────────────────┐
│ 购物车 (x件商品) │
├─────────────────────────────┤
│ □ 全选 │
├─────────────────────────────┤
│ □ [商品1] │
│ 商品图片 商品名称 │
│ ¥价格 │
│ [-] 1 [+] [删除] │
├─────────────────────────────┤
│ □ [商品2] │
│ 商品图片 商品名称 │
│ ¥价格 │
│ [-] 2 [+] [删除] │
├─────────────────────────────┤
│ 合计:¥xxx.xx │
│ [结算 (x件商品)] │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
商品详情
[商品详情页面布局]
┌─────────────────────────────┐
│ < 返回 │
├─────────────────────────────┤
│ 商品主图展示区域 │
│ │
├─────────────────────────────┤
│ 商品名称 │
│ ¥价格 │
│ 库存:xxx件 │
├─────────────────────────────┤
│ 商品详情 │
│ (图文详情区域) │
│ │
├─────────────────────────────┤
│ [加入购物车] [立即购买] │
└─────────────────────────────┘
收货地址编辑
[收货地址编辑页面布局]
┌─────────────────────────────┐
│ 编辑收货地址 │
├─────────────────────────────┤
│ 收货人: │
│ [____________] │
├─────────────────────────────┤
│ 手机号码: │
│ [____________] │
├─────────────────────────────┤
│ 所在地区: │
│ [省份/城市/区县 >] │
├─────────────────────────────┤
│ 详细地址: │
│ [____________] │
├─────────────────────────────┤
│ □ 设为默认收货地址 │
├─────────────────────────────┤
│ [保存地址] │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
收货地址列表
[收货地址列表页面布局]
┌─────────────────────────────┐
│ 收货地址管理 │
├─────────────────────────────┤
│ [地址1] │
│ 收货人: 张三 138****8888 │
│ 地址: xx省xx市xx区 │
│ [编辑] [删除] [默认地址] │
├─────────────────────────────┤
│ [地址2] │
│ 收货人: 李四 139****9999 │
│ 地址: xx省xx市xx区 │
│ [编辑] [删除] [设为默认] │
├─────────────────────────────┤
│ [+ 新增收货地址] │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
首页
[首页布局]
┌─────────────────────────────┐
│ 轮播图区域 │
│ ●●●●● (轮播图指示器) │
├─────────────────────────────┤
│ 推荐商品 │
├─────────────────────────────┤
│ [商品卡片] [商品卡片] │
│ - 商品图片 - 商品图片 │
│ - 商品名称 - 商品名称 │
│ - ¥价格 - ¥价格 │
│ [加入购物车] [加入购物车] │
├─────────────────────────────┤
│ 分类商品 │
├─────────────────────────────┤
│ 分类1 > │
│ [商品1] [商品2] [商品3] │
├─────────────────────────────┤
│ 分类2 > │
│ [商品1] [商品2] [商品3] │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
我的
[我的页面布局]
┌─────────────────────────────┐
│ ○ [头像] │
│ 昵称 │
├─────────────────────────────┤
│ [我的订单] │
├─────────────────────────────┤
│ [收货地址管理] │
├─────────────────────────────┤
│ [退出登录] │
├─────────────────────────────┤
│ [首页] [分类] [购物车] [我的]│
└─────────────────────────────┘
开发安卓APP(AI生图)
搭建安卓APP开发环境
一、询问Cursor怎么做
我要做一个安卓APP,但是我没有任何经验,请详细的告诉我该怎么做。
要求:
1、详细描述需要安装哪些基础环境,并告诉我在哪里下载。
2、考虑到我没有经验,请尽量以普通人能听懂的语言向我描述。
3、我在中国大陆,请为我提供中国大陆可访问的下载地址。
二、安装JDK
三、安装Android Studio
安装时要关闭360等杀毒软件,否则会出现HAXM安装失败的问题。
四、安装Android SDK
安装后第一次打开,选择Custom,可以自定义SDK安装的路径。
编写调用Coze API的代码
一、Coze API可添加Docs的URL
https://www.coze.cn/open/docs/developer_guides/workflow_run
二、生成代码的提示词
请你根据图片中的文档内容,生成调用coze工作流的代码。
并且需要结合 @需求文件 和 @UI示意图.txt 来实现完整的文生图功能。
Coze工作流ID:
Coze Token:
测试并完善APP
一、让Cursor修改代码,生成固定前缀的日志
APP可以运行了,但是点击生成图片按钮时出现了错误,安卓输出的日志太多了,你能帮我修改代码让功能输出的日志有一个特殊的前缀么?方便我在logcat中过滤查找日志
二、测试通过后生成APK文件
我已经测试通过了,请问该怎么在AndroidStudio中生成APK文件
三、生成release版本的APK文件
要选择 Release 版本打包,需要按照以下步骤操作:
点击顶部菜单 Build -> Generate Signed Bundle / APK
在弹出的窗口中选择 APK
点击 Next
选择或创建密钥库:
如果已有密钥库,选择 Choose existing
如果没有,点击 Create new 创建新的密钥库
点击 "Create new" 创建新的密钥库
在 "New Key Store" 窗口中填写:
- Key store path: 选择 app 文件夹,文件名填写 keystore.jks
- Password: 123456 (与 gradle.properties 中的 RELEASE_STORE_PASSWORD 一致)
- Alias: key0 (与 gradle.properties 中的 RELEASE_KEY_ALIAS 一致)
- Password: 123456 (与 gradle.properties 中的 RELEASE_KEY_PASSWORD 一致)
Certificate 信息填写:
- First and Last Name: 你的名字
- Organizational Unit: 可以填写 Development
- Organization: 你的组织名
- City or Locality: 你的城市
- State or Province: 你的省份
- Country Code: CN
填写密钥库信息(与 gradle.properties 中的配置保持一致):
Key store path: app/keystore.jks
Key store password: 123456
Key alias: key0
Key password: 123456
6. 点击 Next
7. 在 Build Variants 中选择 release
选择 V1 和 V2 签名版本
点击 Finish
这样就会生成签名的 Release 版本 APK,位置在:app/release/app-release.apk
如果你直接点击 Build APK(s) 生成的是 Debug 版本,位置在:app/debug/app-debug.apk
UI示意图
+----------------------------------+
| AI文生图 |
+----------------------------------+
| |
| +----------------------------+ |
| | 文本输入框 | |
| | | |
| | 请输入您想要生成的图片描述 | |
| | | |
| +----------------------------+ |
| |
| +----------------------------+ |
| | 生成按钮 | |
| | 生成图片 | |
| +----------------------------+ |
| |
| +----------------------------+ |
| | | |
| | 图片显示区域 | |
| | | |
| | | |
| | | |
| | | |
| | | |
| +----------------------------+ |
| |
+----------------------------------+
说明:
1. 顶部显示应用名称 "AI文生图"
2. 文本输入框:用于用户输入图片描述文本
3. 生成按钮:点击后调用Coze API生成图片
4. 图片显示区域:用于展示生成的图片结果
Cursor的其它用途
学习新知识,规划学习路径
一、让Cursor规划出Python的学习路径
1、规划学习方向
我想学习Python,但是我没有任何的基础,麻烦你告诉我Python有哪几个学习方向?以便我选择一个方向进行学习。
2、选择方向,规划路径
我对自动化感兴趣,麻烦你帮我规划具体的学习路径,我每天能学习的时间大概是1小时。
3、生成学习文件
请你先帮我生成Python基础的学习文件,要求:
1、按天规划学习内容,学习内容要有对应的文字说明,否则我看不懂
2、每天的学习内容要设计对应的课后练习
3、针对该练习,你应该可以了解和分析我的学习效果
二、利用Cursor学习开源项目
1、从gitee随便下载一个开源项目
2、用Cursor打开该项目的文件夹
3、向Cursor提问
@Codebase 请帮我分析这个项目,简要介绍该项目是做什么的。
另外,请帮我生成几个文件:
1、生成功能模块分析文档,要求项目描述各功能,写入到文件 功能模块分析.txt
2、生成目录结构文档,要求详细到描写每个文件的作用,写入到文件 目录结构.txt
3、生成技术栈文档,要求详细到具体使用了哪些编程语言,使用了哪些第三方类库,写入到文件 技术栈文档.txt
Python的学习路径
day1_answer.py
# 练习1参考答案:
my_name = "张三"
my_age = 20
favorite_language = "Python"
print("我的名字是:", my_name)
print("我的年龄是:", my_age)
print("我最喜欢的编程语言是:", favorite_language)
# 练习2参考答案:
num1 = 95
num2 = 64
print("和:", num1 + num2)
print("差:", num1 - num2)
print("积:", num1 * num2)
print("商:", num1 / num2)
# 练习3参考答案:
age_str = str(18)
result = age_str + "岁"
print(result)
# 练习4参考答案:
price = 9.9
quantity = 2
total = price * quantity
print(f"{quantity}件商品共{total}元")
day1_basics.py
# Python基础 - 第1天
# 主题:变量和基本数据类型
# 1. 变量
# 变量是存储数据的容器
# 变量命名规则:
# - 只能包含字母、数字和下划线
# - 不能以数字开头
# - 不能使用Python关键字
name = "小明" # 字符串类型
age = 25 # 整数类型
height = 1.75 # 浮点数类型
# 2. 打印变量
# print() 函数用于在控制台显示内容
print("姓名:", name)
print("年龄:", age)
print("身高:", height)
# 3. 数据类型
# type() 函数用于查看变量的类型
print("\n数据类型演示:")
print("name的类型:", type(name))
print("age的类型:", type(age))
print("height的类型:", type(height))
# 4. 简单的数学运算
# Python支持基本的数学运算
a = 10
b = 3
print("\n基本运算演示:")
print("加法:", a + b) # 加法
print("减法:", a - b) # 减法
print("乘法:", a * b) # 乘法
print("除法:", a / b) # 除法
print("整除:", a // b) # 整除(向下取整)
print("取余:", a % b) # 取余
print("幂运算:", a ** b) # 幂运算
day1_exercise.py
# 第1天 - 练习题
# 请完成以下练习,帮助巩固今天学习的内容
# 练习1:创建变量
# 创建三个变量,分别存储你的姓名、年龄和你最喜欢的编程语言
# 在下面写出你的代码:
name = "张三"
age = 20
favorite_language = "Python"
# 练习2:数学运算
# 定义两个数字,分别是95和64
# 计算它们的和、差、积、商,并打印结果
# 在下面写出你的代码:
num1 = 95
num2 = 64
print("和:", num1 + num2)
print("差:", num1 - num2)
print("积:", num1 * num2)
print("商:", num1 / num2)
# 练习3:类型转换
# 将数字18转换为字符串,并与字符串"岁"拼接,最后打印出来
# 在下面写出你的代码:
age_str = str(18)
result = age_str + "岁"
print(result)
# 练习4:综合练习
# 创建两个变量,分别存储一个物品的价格(浮点数)和数量(整数)
# 计算总价,并格式化打印出来,例如:2件商品共20.0元
# 在下面写出你的代码:
price = 9.9
quantity = 2
total = price * quantity
print(f"{quantity}件商品共{total:.1f}元")
提升文章编写效率
一、模仿URL的文章内容进行仿写
可以通过@Url的方式投喂模板文章,也可以通过在对话框中粘贴内容的方式投喂模板文章。
二、通过@Web让Cursor生成文章时去检索更多的信息
@Web 请帮我生成一篇介绍deepseek的文章,要求能清晰的描述出deepseek算法为什么比gpt有优势,为什么会带来成本上的降低。
三、将常用的名人名言作为外挂知识库
1、可以让Cursor给我们提供一些名人名言
请给我一些常用的关于心理学的名人名言,并将其生成到文件:心理学名人名言.txt
2、从文件中选择合适的名人名言
帮我写一段300字左右,关于7岁孩子性格养成和教育中应该注意事项的短文。
要求:
1、为了有理有据,要从 @心理学名人名言.txt 文件中选择合适的名人名言填充到文章中,并辅以对应的案例故事。
2、名人名言不要用的过多,只选择1-2个既可。
四、利用Composer能够生成文件和修改文件的能力
1、规划目录
我想写一个关于6岁儿童教育的一系列文章,预计有10篇文章左右,请你帮我规划该系列文章的目录。
2、生成文件
2.1 normal模式
请你根据刚才提供的内容帮我生成对应的文章。
2.2 agent模式(可以一次性生成多个文件)
@6岁儿童教育系列文章目录.txt 请你使用agent能力帮我生成全部的文章,一次性都生成,可以么?
3、补充文章内容
请帮我补充文章内容,要求内容有理有据,最好辅以看起来非常真实的案例加以说明。
分析汇总Excel数据
一、让Cursor生成一个模拟数据的excel
请帮我模拟生成一个北京房地产2024年销售数据的excel。
要求:
1、数据包含12个月。
2、要区分各区的数据,也就是字段里要有区。
3、不要汇总统计的数据,而是销售明细数据。
写入文件:北京2024年房产销售数据.csv
二、补充excel数据的行数(使用Agent)
请使用Agent能力将数据补充到200行
三、让Cursor分析excel并生成汇总分析程序
1、让cursor按自己想法帮我们生成汇总分析
@北京2024年房产销售数据.csv 请帮我分析这个excel文件,并告诉我能从哪几个维度对数据做汇总分析?
然后请你根据提出的维度生成对应的python代码,要求能够输出对应的数据图表,如柱状图,饼图,折线图。
python代码写入文件:汇总分析.py
2、按我们自己的需求生成汇总分析
@北京2024年房产销售数据.csv 请按月分析北京2024年的房产销售情况。 要求: 1、将分析结果写入文件,要求数据详实、结构清晰。写入文件:北京2024年房产销售情况汇总分析.txt 2、生成按月统计的房价平均价的走势图表(折线图)。写入文件:北京2024年平均价走势图.png

更多推荐




所有评论(0)