-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
140 lines (121 loc) · 4.41 KB
/
server.js
File metadata and controls
140 lines (121 loc) · 4.41 KB
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
require("dotenv").config();
const express = require("express");
const app = express();
const cors = require("cors");
const pg = require("pg");
const connectPgSimple = require("connect-pg-simple");
const session = require("express-session");
const pool = require("./db");
const path = require("path");
const PgSession = connectPgSimple(session);
const http = require("http");
const initSocket = require("./socket/socket");
const sessionMiddleware = session({
store: new PgSession({
pool,
tableName: "session",
}),
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
httpOnly: true,
maxAge: 1000 * 60 * 60 * 24,
secure: false,
sameSite: "lax",
},
});
const server = http.createServer(app);
const io = initSocket(server, sessionMiddleware);
app.set("trust proxy", 1);
app.use(
cors({
origin: ["http://localhost:3000", "http://192.168.1.6:3000"], // your frontend URLs
credentials: true, // ✅ allow cookies
}),
);
app.use(sessionMiddleware);
// app.use(
// session({
// store: new PgSession({
// pool,
// tableName: "session",
// }),
// secret: process.env.SESSION_SECRET,
// resave: false,
// saveUninitialized: false,
// cookie: {
// httpOnly: true,
// maxAge: 1000 * 60 * 60 * 24, // 1 day
// secure: false, // ❌ false for local dev (HTTP)
// sameSite: "lax", // ✅ safe for local dev
// },
// })
// );
// Middlewares
app.use(express.json()); // Body parser for JSON
app.use(express.urlencoded({ extended: true }));
app.use("/hls", express.static(path.join(__dirname, "uploads/hls")));
app.use("/uploads", express.static(path.join(__dirname, "uploads")));
app.use("/api/video", require("./routes/post/videoStream")); //Not in use Temp
app.use("/sprites", express.static(path.join(__dirname, "uploads/sprites")));
// io set
app.set("io", io);
// Route Imports
const mainRoutes = require("./routes/index");
const SignupRoute = require("./routes/auth/signup");
const LoginRoute = require("./routes/auth/login");
const CheckAuth = require("./routes/auth/check-status");
const Logout = require("./routes/auth/logout");
const passport = require("./auth/passport");
const GoogleOauthRoutes = require("./routes/auth/google");
const FacebookOauthRoutes = require("./routes/auth/facebook");
const UserDetailsRoutes = require("./routes/auth/user-details");
const postRoutes = require("./routes/post/posts");
const likeRoutes = require("./routes/likes");
const commentRoutes = require("./routes/comments");
const UploadRouteforProfile = require("./routes/uploads");
const ConnectionRoutes = require("./routes/connections/request");
const SuggestionConnectionRoute = require("./routes/connections/suggestions");
const MessagingAllRoutes = require("./routes/messaging/message");
const JobAllRoutes = require("./routes/jobs/job");
const UpdateProfileSectionRoutes = require("./routes/profile/postRoutes");
const FetchprofileSectionRoutes = require("./routes/profile/getterRoutes");
// const UploadRoute = require("./routes/uploads");
// Mount Routes
app.use(passport.initialize());
app.use(passport.session());
app.use("/", mainRoutes);
app.use("/api/auth", SignupRoute); // All routes in SignupRoute will be prefixed with /api/auth
app.use("/api/auth", LoginRoute);
app.use("/api/auth", GoogleOauthRoutes);
app.use("/api/auth", FacebookOauthRoutes);
app.use("/api/auth", CheckAuth);
app.use("/api/auth", Logout);
app.use("/api/auth", UserDetailsRoutes);
app.use("/api/posts", postRoutes);
app.use("/api/likes", likeRoutes);
app.use("/api/posts", commentRoutes);
app.use("/api/upload", UploadRouteforProfile);
//connections
app.use("/api/connections", ConnectionRoutes);
app.use("/api/connections", SuggestionConnectionRoute);
// Messaging
app.use("/api/messages", MessagingAllRoutes);
// Jobs
app.use("/api/jobs", JobAllRoutes);
// app.use("/api/upload", UploadRoute);
// Profile Routes
app.use("/api/profile/update", UpdateProfileSectionRoutes);
app.use("/api/profile/details/get/", FetchprofileSectionRoutes);
app.use("/api/profile/fetch/", require("./routes/profile/profile"));
// Search
app.use("/api/linkedup-search", require("./routes/search/search"));
// Notifications
app.use("/api/notifications", require("./routes/notifications/notifiy"));
// app.listen(8000, "0.0.0.0", () => {
// console.log("Server is running on port 8000");
// });
server.listen(8000, "0.0.0.0", () => {
console.log("Server + Socket.IO running on port 8000");
});