-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
executable file
·81 lines (69 loc) · 2.36 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
require("dotenv").config();
const express = require("express");
const morgan = require("morgan");
const path = require("path");
const exphbs = require("express-handlebars");
const compression = require("express-compression");
const cors = require("cors");
const cookieParser = require("cookie-parser");
const http = require("http");
// Rutas
const userRoutes = require("./routes/userRoutes");
const songRoutes = require("./routes/songRoutes");
const adRoutes = require("./routes/adRoutes");
const playerRoutes = require("./routes/playerRoutes");
const errorRoutes = require("./routes/errorRoutes");
const app = express();
const server = http.createServer(app);
const port = process.env.PORT || 3005;
app.use(morgan("tiny"));
app.use(express.json());
app.use(cors());
app.use(compression());
// Configurar cookie-parser con la misma clave secreta
app.use(cookieParser());
// Configuración de Handlebars como motor de plantillas
app.set("views", path.join(__dirname, "views"));
app.engine(
".hbs",
exphbs.create({
defaultLayout: "main",
extname: ".hbs",
partialsDir: __dirname + "/views/partials/",
}).engine
);
app.set("view engine", ".hbs");
// Middleware para procesar datos del formulario
app.use(express.urlencoded({ extended: true }));
// Configuración para archivos estáticos (con manejo de caché)
app.use(
express.static(path.join(__dirname, "public"), {
// maxAge: "1d", // Establece un tiempo de vida de caché de 1 día para archivos estáticos
maxAge: 600000, // Establece un tiempo de vida de caché de 10 minutos
})
);
app.use("/js", express.static("public/js"));
app.use("/css", express.static("public/css"));
app.use("/music", express.static("public/music"));
app.use("/audios", express.static("public/audios"));
app.use("/himno", express.static("public/himno"));
app.use("/diciembre", express.static("public/diciembre"));
app.use("/assets", express.static("public/assets"));
// Manejo de cache
app.use((req, res, next) => {
// Configuración de cabeceras de caché
res.set("Cache-Control", "no-store");
next();
});
// Rutas
app.use("/", userRoutes);
app.use("/", playerRoutes);
app.use("/", songRoutes);
app.use("/", adRoutes);
app.use("/", errorRoutes);
// Importar y configurar sockets
const socketHandler = require("./utils/sockets");
socketHandler(server);
server.listen(port, () => {
console.log(`Server is running on port ${port}`);
});