1.2 KiB
1.2 KiB
- 入口
src/app.js加载.env(config/loadEnv.js从仓库根目录读取)、注册 CORS/JSON/bodyLimit 中间件、挂载路由数组并调用sequelize.sync()建表后执行ensureBootstrapSuperAdmin引导超级管理员。 - 分层组织:
routes/按业务域拆分(auth, brands, models, ota, blacklist, otaTargetDevice, shareCodeLogs, users, dashboard),由routes/index.js汇总导出供 app 遍历挂载;models/使用 Sequelize 定义实体并通过index.js统一导出;services/封装外部依赖(S3、Redis、Meilisearch、曲线服务);middleware/提供认证与请求体大小限制;utils/暴露 JWT、密码哈希、统一响应格式;validators/以 zod schema 校验入参。 - 认证边界:
middleware/auth.js解析 Bearer token 注入req.user,受保护路由在各自文件中通过router.use(authMiddleware)全局启用,仅/health、根路径等公开接口例外;requireSuperAdmin用于超管专用端点。 - 启动流程:
start.sh→node src/app.js→loadEnv→sequelize.sync()→userBootstrap.ensureBootstrapSuperAdmin()→app.listen(8083),异常时降级继续运行。