import dotenv from "dotenv"; import express from "express"; import cors from "cors"; import compression from "compression"; import nocache from "nocache"; import path from "path"; dotenv.config({ path: path.resolve(__dirname, "../../../.env") }); import "./database"; import { sequelize } from "./database/instance"; import {errorHandler} from "./middleware/errorHandler"; import { RegisterRoutes } from "./routes/routes"; // tsoa 生成的 const port = process.env.PORT || 3005; const app = express(); app.set("etag", false); app.use(nocache()); app.use(cors()); app.use(express.json({ limit: "100mb" })); app.use(compression()); app.use(express.static(path.resolve(__dirname, "client"))); // Register tsoa routes RegisterRoutes(app); app.use(errorHandler); const host = "0.0.0.0"; app.listen(Number(port), host, async () => { try { await sequelize.sync({ alter: true }); console.log("[server]: sequelize.sync() executed"); } catch (e) { console.error("Failed to sync database:", e); } console.log(`[server]: Server is running at http://${host}:${port}`); });