index.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. const express_1 = __importDefault(require("express"));
  7. const cors_1 = __importDefault(require("cors"));
  8. const path_1 = __importDefault(require("path"));
  9. const database_1 = require("./db/database");
  10. const seed_1 = require("./db/seed");
  11. const templates_1 = require("./routes/templates");
  12. const creatives_1 = require("./routes/creatives");
  13. const assets_1 = require("./routes/assets");
  14. const builds_1 = require("./routes/builds");
  15. const preview_1 = require("./routes/preview");
  16. const preview_2 = require("./routes/preview");
  17. const errorHandler_1 = require("./middleware/errorHandler");
  18. const PORT = process.env.PORT || 3001;
  19. const STORAGE_DIR = path_1.default.resolve(__dirname, "../../../storage");
  20. const CLIENT_DIST = path_1.default.resolve(__dirname, "../../client/dist");
  21. async function main() {
  22. // 初始化数据库
  23. const db = (0, database_1.initDatabase)(STORAGE_DIR);
  24. (0, seed_1.seedTemplates)(db);
  25. const app = (0, express_1.default)();
  26. // 中间件
  27. app.use((0, cors_1.default)());
  28. app.use(express_1.default.json());
  29. // API 路由
  30. app.use("/api/v1/templates", (0, templates_1.templatesRouter)(db));
  31. app.use("/api/v1/creatives", (0, creatives_1.creativesRouter)(db, STORAGE_DIR, preview_2.onThemeSaved));
  32. app.use("/api/v1", (0, assets_1.assetsRouter)(db, STORAGE_DIR));
  33. app.use("/api/v1", (0, builds_1.buildsRouter)(db, STORAGE_DIR, preview_2.onThemeSaved));
  34. app.use("/api/v1", (0, preview_1.previewRouter)(db, STORAGE_DIR));
  35. // 构建预览文件(真机扫码测试)
  36. const previewsDir = path_1.default.join(STORAGE_DIR, "previews");
  37. app.use("/q", express_1.default.static(previewsDir));
  38. app.use("/q", (_req, res) => res.status(404).send("Preview not found"));
  39. // 生产环境:serve React 静态文件
  40. app.use(express_1.default.static(CLIENT_DIST));
  41. app.get("*", (_req, res) => {
  42. res.sendFile(path_1.default.join(CLIENT_DIST, "index.html"));
  43. });
  44. // 错误处理
  45. app.use(errorHandler_1.errorHandler);
  46. app.listen(PORT, () => {
  47. console.log(`[platform] Server running at http://localhost:${PORT}`);
  48. console.log(`[platform] Storage: ${STORAGE_DIR}`);
  49. });
  50. }
  51. main().catch((err) => {
  52. console.error("Failed to start server:", err);
  53. process.exit(1);
  54. });
  55. //# sourceMappingURL=index.js.map