| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright (c) 2025 gugdun
- // All rights reserved. Unauthorized use, copying, or distribution is strictly prohibited.
- require("dotenv").config();
- const path = require("path");
- const express = require("express");
- const cookieParser = require("cookie-parser");
- const passport = require("passport");
- const session = require("express-session");
- const pgSession = require("connect-pg-simple")(session);
- const indexRouter = require("./routes/index");
- const authRouter = require("./routes/auth");
- const chatRouter = require("./routes/chat");
- const addRouter = require("./routes/add");
- const longpollRouter = require("./routes/longpoll");
- const attachmentRouter = require("./routes/attachment");
- const PORT = process.env.PORT || 3000;
- const app = express();
- app.set("trust proxy", 1);
- app.set("view engine", "ejs");
- app.set("views", path.join(__dirname, "views"));
- app.use(express.json());
- app.use(express.urlencoded({ extended: false }));
- app.use(cookieParser());
- app.use(express.static("public"));
- app.use(session({
- secret: process.env.SESSION_SECRET,
- resave: false,
- saveUninitialized: false,
- store: new pgSession({
- tableName: "sessions",
- conString: process.env.POSTGRES_CONNECTION,
- createTableIfMissing: true
- }),
- cookie: {
- path: "/",
- secure: "auto",
- sameSite: "strict",
- httpOnly: true,
- maxAge: Number(process.env.COOKIE_MAX_AGE)
- }
- }));
- app.use(passport.authenticate("session"));
- app.use(indexRouter);
- app.use(authRouter);
- app.use(chatRouter);
- app.use(addRouter);
- app.use(longpollRouter);
- app.use(attachmentRouter);
- app.use(function (req, res, next) {
- next(createError(404));
- });
- app.use(function (err, req, res, next) {
- res.locals.message = err.message;
- res.locals.error = err;
- res.status(err.status || 500);
- res.render('error');
- });
- app.listen(PORT, function () {
- console.log(`Listening on port ${PORT}`);
- });
|