基于 Node.js + Express 的单设备电子产品租借系统,当前使用 Markdown(.md) 文件保存全部租借记录,满足以下核心流程:
- 默认至少提前 10 分钟预约,可通过
.env调整 - 默认 10 分钟开始窗口内手动开始,可通过
.env调整 - 执行中显示倒计时并手动归还
- 超时未开始 / 未按时归还自动判定
- 每次结束后默认进入 10 分钟冷静期,可通过
.env调整 - 强制填写总结与反思
- 记录筛选、文本表格复制、黑白图片导出
- 可选 SMTP 邮件提醒
npm install
npm start默认地址:http://localhost:3000
默认记录文件:data/rent-records.md
npm run dev复制 .env.example 为 .env 后,将 DEBUG_MODE=true,重启服务即可在主页看到调试面板。
- 调试面板只在开启时显示,同时才会注册
/api/debug/*接口 - 每次注入调试场景前都会先清空当前记录,适合快速验证单个流程
- 关闭时只需把
.env中的DEBUG_MODE改回false
系统会把所有租借记录写入 RECORDS_MD_PATH 指向的 .md 文件。你可以直接修改这个文件中的 json 代码块来修正记录,保存后系统下次读取就会生效。
- 默认路径:
data/rent-records.md - 每条记录都是一个独立的
## 记录 N区块 - 时间字段请使用 ISO 8601,例如
2026-04-17T02:10:00.000Z null表示空值
如果当前仓库里还保留旧版 SQLite 数据库,而新的 Markdown 文件尚未创建,系统会在首次启动时自动从 DATABASE_PATH 导入旧记录。
以下时间限制已支持通过 .env 修改,修改后重启服务即可生效:
MIN_ADVANCE_MINUTES:预约需至少提前多少分钟,默认10START_WINDOW_MINUTES:开始窗口时长,默认10COOLDOWN_MINUTES:每次结束后的冷静期,默认10NORMAL_RETURN_GRACE_SECONDS:判定“正常归还”的宽限秒数,默认60MIN_DURATION_FOR_REMINDERS_MINUTES:启用提醒的最小时长,默认5REMINDER_STAGE_3_MINUTES/REMINDER_STAGE_2_MINUTES/REMINDER_STAGE_1_MINUTES:三次提醒的分钟阈值,默认3 / 2 / 1SCHEDULER_TICK_MS:后台状态校正轮询周期,默认15000
npm test复制 .env.example 后设置以下环境变量,配置完成后重启服务:
SMTP_HOSTSMTP_PORTSMTP_SECURESMTP_USERSMTP_PASSSMTP_FROMALERT_EMAIL_TO
默认情况下,当租借时长大于 5 分钟时,系统会在剩余 3、2、1 分钟分别发送提醒邮件。
这些提醒阈值和启用提醒的最小时长同样可以通过 .env 修改。
当前仓库仍然是 Node.js + Express + Markdown 文件存储 的本地服务端架构,不是纯静态前端项目,因此还不能直接生成一个真正独立运行的离线 APK。
如果要做到“整个项目单包导出为 APK”,下一步需要二选一:
- 将后端规则和存储迁移到移动端本地运行层,再配合 Android 壳打包
- 保留当前 Node 服务端,另外增加 Android 壳层,让 APK 作为前端入口连接服务端
- 默认 Markdown 记录文件:
data/rent-records.md - 旧版 SQLite 文件:
data/rent.db,仅在首次迁移时读取