6.5 KiB
6.5 KiB
记事本模块部署检查清单
📋 部署前检查
1. 数据库准备
- 执行 SQL 文件创建数据表
mysql -u用户名 -p数据库名 < sql/yz_platform_notebook.sql - 验证表创建成功
SHOW TABLES LIKE 'yz_platform_notebook'; DESC yz_platform_notebook;
2. 后端代码检查
- [✅] 模型文件已创建:
go/models/platform_notebook.go - [✅] 模型已注册:
go/models/init.go - [✅] 控制器已创建:
go/controllers/platform_notebook.go - [✅] 路由已注册:
go/routers/platform/platform.go - [✅] 代码编译通过
3. 前端代码检查
- [✅] API文件已创建:
platform/src/api/notebook.js - [✅] 主页面已创建:
platform/src/views/apps/notebook/index.vue - [✅] 编辑器组件已创建:
platform/src/views/apps/notebook/components/edit.vue - [✅] WangEditor组件已创建:
platform/src/views/apps/notebook/components/WangEditor.vue
4. 依赖检查
- 前端安装 WangEditor
cd platform npm install @wangeditor/editor # 或 yarn add @wangeditor/editor
5. 菜单配置
- 在平台管理后台添加记事本菜单项
- 路径:
/apps/notebook - 组件:
apps/notebook/index.vue - 图标:
fa-solid fa-book或其他合适的图标 - 标题:
记事本或我的笔记
- 路径:
🚀 部署步骤
后端部署
-
停止服务
# 如果服务正在运行,先停止 pkill -f "go run main.go" -
编译代码
cd go go build -o server -
启动服务
./server # 或使用后台运行 nohup ./server > server.log 2>&1 &
前端部署
-
安装依赖
cd platform npm install # 或 yarn install -
开发模式测试
npm run dev # 或 yarn dev -
生产构建
npm run build # 或 yarn build
✅ 功能测试
基础功能测试
-
访问页面
- 能够正常访问记事本页面
- 页面布局正常显示
- 左侧列表和右侧编辑器都能正常显示
-
创建笔记
- 点击"新建笔记"按钮
- 输入标题和内容
- 点击"创建"按钮
- 创建成功,笔记出现在列表中
-
编辑笔记
- 点击列表中的笔记
- 笔记内容正确加载到编辑器
- 修改标题和内容
- 点击"保存"按钮
- 保存成功,列表中的笔记信息更新
-
删除笔记
- 点击笔记右侧的"更多"按钮
- 点击"删除"
- 确认删除
- 笔记从列表中移除
-
搜索笔记
- 在搜索框输入关键词
- 列表自动过滤显示匹配的笔记
- 清空搜索框,显示所有笔记
富文本编辑器测试
-
文本格式
- 加粗、斜体、下划线
- 标题(H1-H6)
- 字体颜色和背景色
-
列表和引用
- 有序列表
- 无序列表
- 引用块
-
插入内容
- 插入链接
- 插入代码块
- 插入表格
-
图片上传 (需要配置上传接口)
- 点击图片按钮
- 选择图片文件
- 图片正确上传并显示
API测试 (使用浏览器控制台)
// 1. 在浏览器控制台加载测试脚本
// 将 test-api.js 的内容粘贴到控制台
// 2. 运行完整测试
await NotebookTest.runFullTest();
// 3. 或单独测试各个功能
await NotebookTest.create(); // 创建笔记
await NotebookTest.list(); // 获取列表
await NotebookTest.detail(1); // 获取详情
await NotebookTest.update(1, {...}); // 更新笔记
await NotebookTest.delete(1); // 删除笔记
🐛 常见问题排查
1. 编译错误
问题: cannot use &claims.UserID (value of type *int) as *uint64
解决: 已修复,使用类型转换 userID := uint64(claims.UserID)
问题: undefined: PlatformNotebook
解决: 检查 go/models/init.go 中是否已注册模型
2. 数据库错误
问题: 表不存在
解决:
-- 检查表是否存在
SHOW TABLES LIKE 'yz_platform_notebook';
-- 如果不存在,执行 SQL 文件
SOURCE sql/yz_platform_notebook.sql;
问题: 字段不存在
解决: 确认字段名使用 create_time, update_time, delete_time
3. 前端错误
问题: WangEditor 未定义
解决:
npm install @wangeditor/editor
问题: API 请求 401 未授权
解决:
- 检查用户是否已登录
- 检查 JWT Token 是否有效
- 检查 Token 是否正确设置在请求头中
问题: 笔记列表为空
解决:
- 检查数据库中是否有数据
- 检查用户ID是否匹配
- 查看浏览器控制台和网络请求
4. 权限错误
问题: 无法访问其他用户的笔记
说明: 这是正常的,每个用户只能访问自己的笔记
📊 性能优化建议
数据库优化
-
为常用查询字段添加索引(已添加)
user_idcreate_timeis_deleted
-
定期清理软删除的数据
-- 删除30天前的软删除数据 DELETE FROM yz_platform_notebook WHERE is_deleted = 1 AND delete_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
前端优化
- 列表分页加载(已实现)
- 内容预览截取(已实现)
- 懒加载编辑器组件
- 防抖搜索功能(可选)
后端优化
- 添加缓存层(Redis)
- 内容压缩存储
- 异步处理大文件
- API 限流保护
🔐 安全建议
-
内容安全
- 前端显示时做 XSS 过滤
- 后端存储前做内容校验
- 限制单篇笔记大小
-
访问控制
- JWT Token 验证(已实现)
- 用户权限校验(已实现)
- API 频率限制
-
数据备份
- 定期备份数据库
- 软删除机制(已实现)
- 版本控制(可选)
📝 后续功能扩展
- 笔记分类/文件夹
- 笔记标签
- 笔记分享
- 导出功能(PDF/Markdown)
- 版本历史
- 协作编辑
- 全文搜索
- 附件上传
- 模板功能
- 快捷键支持
✨ 完成标志
- [✅] SQL 表创建成功
- [✅] 后端代码编译通过
- [✅] 前端页面正常访问
- 所有功能测试通过
- 无控制台错误
- 性能表现良好
📞 技术支持
如遇到问题,请检查:
- 浏览器控制台错误信息
- 后端服务日志
- 数据库连接状态
- API 请求响应
祝部署顺利!🎉