选择题训练系统 v2.0

在线编辑器操作与服务器维护说明

新版在线 H5 扫码版。原系统、原教师端、原学生端、旧二维码和旧任务链接保持不变。

一、在线编辑器操作说明

1. 访问地址

新版在线编辑器:
https://next.hofor881.cn/online-editor.html

原系统:
https://hofor881.cn/
在线编辑器只生成新任务,不修改原任务。“应用修改”只修改当前浏览器内存;必须点击“另存为新任务”才会创建新任务。

2. 导入教师工程

  1. 打开新版在线编辑器并登录教师账号。
  2. 选择原始教师工程 JSON 文件。
  3. 等待“工程读取成功”。
  4. 先查看工程诊断,再开始编辑。

必须导入包含 originalQuestions 数组的教师工程 JSON。

3. 工程诊断

颜色含义
绿色未发现明显结构问题。
黄色存在建议检查的警告,例如未引用的图片池图片。
红色存在必须修复的问题,例如重复题号、空选项或无效图片引用。

4. 编辑普通题

5. 复制和删除题目

6. 图片题查看和替换

当前暂不支持删除图片、修改图片池 ID、修改图片挂接关系或直接编辑任意 Base64。

7. 另存为新任务

保存前会检查题目、题号、选项、答案、分值、图片池和图片引用。

校验失败时不会调用保存接口,也不会创建新任务。保存成功后请记录新任务 ID,并打开学生端检查。

8. 学生端验证

二、服务器维护说明

1. 项目基本信息

项目目录:/var/www/quiz
Node 服务:127.0.0.1:3000
PM2 应用:quiz
数据库:PostgreSQL / quiz
新版域名:https://next.hofor881.cn
原域名:https://hofor881.cn

2. 维护规则

3. 修改前检查

cd /var/www/quiz
git status --short
git log --oneline -12
pm2 status

要求工作区干净、PM2 为 online,并确认当前提交。

4. 文件备份

mkdir -p backups
backup="backups/<文件名>.before-<功能>-$(date +%Y%m%d-%H%M%S)"
cp -p <文件名> "$backup"
sha256sum <文件名> "$backup"

5. 语法和差异检查

node --check server.js
git diff --check
git diff --stat
git status --short

修改前端内嵌脚本后,也要提取脚本并执行 node --check

6. 服务检查

pm2 status

curl -sS -o /tmp/quiz-health.json \
  -w 'health_http=%{http_code}\n' \
  https://next.hofor881.cn/api/health
cat /tmp/quiz-health.json

curl -sS -o /tmp/online-editor-status.json \
  -w 'status_http=%{http_code}\n' \
  https://next.hofor881.cn/api/online-editor/status
cat /tmp/online-editor-status.json

期望健康接口 HTTP 200,并返回 {"ok":true};在线编辑状态应为 enabled=true。

7. PM2 重启和异常处理

pm2 restart quiz
sleep 2
pm2 status
curl -sS -i https://next.hofor881.cn/api/health
PM2 重启瞬间可能短暂出现 502。等待几秒后再次检查。如果仍异常,再检查本地 3000 端口、PM2 日志和 Nginx 日志。
curl -sS -i http://127.0.0.1:3000/api/health
pm2 logs quiz --lines 80 --nostream
ss -ltnp | grep ':3000' || true
sudo tail -80 /var/log/nginx/error.log

8. 精准提交

git add public/online-editor.html
git commit -m "feat: describe the change"

git status --short
git log -1 --oneline
pm2 status

只暂存本次明确修改的文件,不使用 git add .。

9. 回滚

cp -p backups/<备份文件> <原文件>
node --check server.js
git diff --check
pm2 restart quiz

已提交的版本先确认影响范围,再进行针对性回滚,不直接删除数据库数据。

10. 当前暂不做的高风险操作

三、当前稳定版本

0d2ae28 feat: enhance teacher project diagnostics

继续遵守:一次一个小补丁、修改前备份、测试通过再提交。