用途:为使用 HostelOS/Almanik PMS 进行开发的场景提供专业技术知识。该系统是客栈物业管理系统,技术栈为后端 Node.js + Express.js、数据库 SQLite3(server/almanik.db)、前端原生 JS + HTML(类 SPA)、会话认证 + CASL RBAC、图表使用 Chart.js。
主要能力:涵盖认证模式、预订状态机、财务计算公式、关键文件定位、API 请求方式与常见缺陷修复。认证方面,requireAuth 中间件设置的是 req.user,正确写法为 req.user?.role、req.user?.id,使用 req.session?.user?.role 或 req.session?.role 会导致 undefined 缺陷。预订状态机:pending 可转 confirmed、cancelled;confirmed 可转 active、cancelled、no_show;active 可转 completed;completed、cancelled、no_show 为终态。状态转换需用 server/validations/business-rules.js 中的 validateBookingStatusTransition(current, new) 校验。财务公式:ADR = revenue.total / bed_nights_sold;occupancy = (bed_nights_sold / bed_nights_available) * 100;RevPAB = revenue.total / bed_nights_available;LOS = total_nights / total_bookings;calculateNights 位于 server/utils/date-utils.js,计算为 Math.max(1, daysDiff(checkIn, checkOut))。
使用方式:所有 API 请求需携带 session-id 请求头,登录接口 POST /api/login 返回 sessionId 及用户信息。测试可用命令:node --check server/server-simple.js 做语法检查;curl http://localhost:3000/health 做健康检查;登录与带会话请求参见官方示例命令。资料中列出了 admin、recepcion、voluntario1 三个测试账号及其密码与角色。关键文件包括 server/server-simple.js(约 6000 行主后端)、public/index.html(约 9000 行主 SPA)、server/modules/unified-metrics.js(指标端点 611 行)、public/finanzas.html 与 public/js/finanzas.js 等。
限制:价格、发布渠道、部署与平台支持等信息暂未提供。文中密码仅为资料中原样保留的测试凭据。