yunzerwebsiteallinone/NOTEBOOK_DEPLOYMENT_CHECKLIST.md
2026-06-17 17:49:59 +08:00

6.5 KiB
Raw Permalink Blame History

记事本模块部署检查清单

📋 部署前检查

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 或其他合适的图标
    • 标题: 记事本我的笔记

🚀 部署步骤

后端部署

  1. 停止服务

    # 如果服务正在运行,先停止
    pkill -f "go run main.go"
    
  2. 编译代码

    cd go
    go build -o server
    
  3. 启动服务

    ./server
    # 或使用后台运行
    nohup ./server > server.log 2>&1 &
    

前端部署

  1. 安装依赖

    cd platform
    npm install
    # 或
    yarn install
    
  2. 开发模式测试

    npm run dev
    # 或
    yarn dev
    
  3. 生产构建

    npm run build
    # 或
    yarn build
    

功能测试

基础功能测试

  1. 访问页面

    • 能够正常访问记事本页面
    • 页面布局正常显示
    • 左侧列表和右侧编辑器都能正常显示
  2. 创建笔记

    • 点击"新建笔记"按钮
    • 输入标题和内容
    • 点击"创建"按钮
    • 创建成功,笔记出现在列表中
  3. 编辑笔记

    • 点击列表中的笔记
    • 笔记内容正确加载到编辑器
    • 修改标题和内容
    • 点击"保存"按钮
    • 保存成功,列表中的笔记信息更新
  4. 删除笔记

    • 点击笔记右侧的"更多"按钮
    • 点击"删除"
    • 确认删除
    • 笔记从列表中移除
  5. 搜索笔记

    • 在搜索框输入关键词
    • 列表自动过滤显示匹配的笔记
    • 清空搜索框,显示所有笔记

富文本编辑器测试

  1. 文本格式

    • 加粗、斜体、下划线
    • 标题H1-H6
    • 字体颜色和背景色
  2. 列表和引用

    • 有序列表
    • 无序列表
    • 引用块
  3. 插入内容

    • 插入链接
    • 插入代码块
    • 插入表格
  4. 图片上传 (需要配置上传接口)

    • 点击图片按钮
    • 选择图片文件
    • 图片正确上传并显示

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. 权限错误

问题: 无法访问其他用户的笔记

说明: 这是正常的,每个用户只能访问自己的笔记


📊 性能优化建议

数据库优化

  1. 为常用查询字段添加索引(已添加)

    • user_id
    • create_time
    • is_deleted
  2. 定期清理软删除的数据

    -- 删除30天前的软删除数据
    DELETE FROM yz_platform_notebook 
    WHERE is_deleted = 1 
    AND delete_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
    

前端优化

  1. 列表分页加载(已实现)
  2. 内容预览截取(已实现)
  3. 懒加载编辑器组件
  4. 防抖搜索功能(可选)

后端优化

  1. 添加缓存层Redis
  2. 内容压缩存储
  3. 异步处理大文件
  4. API 限流保护

🔐 安全建议

  1. 内容安全

    • 前端显示时做 XSS 过滤
    • 后端存储前做内容校验
    • 限制单篇笔记大小
  2. 访问控制

    • JWT Token 验证(已实现)
    • 用户权限校验(已实现)
    • API 频率限制
  3. 数据备份

    • 定期备份数据库
    • 软删除机制(已实现)
    • 版本控制(可选)

📝 后续功能扩展

  • 笔记分类/文件夹
  • 笔记标签
  • 笔记分享
  • 导出功能PDF/Markdown
  • 版本历史
  • 协作编辑
  • 全文搜索
  • 附件上传
  • 模板功能
  • 快捷键支持

完成标志

  • [] SQL 表创建成功
  • [] 后端代码编译通过
  • [] 前端页面正常访问
  • 所有功能测试通过
  • 无控制台错误
  • 性能表现良好

📞 技术支持

如遇到问题,请检查:

  1. 浏览器控制台错误信息
  2. 后端服务日志
  3. 数据库连接状态
  4. API 请求响应

祝部署顺利!🎉