Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • 6f879c68aef1a64443f74b0cc09a720acb2a54c7
  • main default protected
  • revert
  • 64160159
  • 64160292
  • 64160073
  • html-v_page
  • 64160174
  • 64160072
  • 64160295
  • production
11 results

page_1.css

Blame
  • server.js 5.85 KiB
    const express = require("express");
    const path = require("path");
    const session = require("express-session");
    const bcrypt = require("bcrypt");
    const pool = require("./config/database"); 
    require("dotenv").config();
    
    const app = express(); // ประกาศ app ที่นี่
    
    const MySQLStore = require('express-mysql-session')(session);
    const sessionStore = new MySQLStore({ 
        clearExpired: true, 
        checkExpirationInterval: 900000, // 15 นาที
        expiration: 86400000 // 24 ชั่วโมง
    }, pool);
    
    // Middleware isLoggedIn
    const isLoggedIn = (req, res, next) => {
        if (req.session.user) {
            next();
        } else {
            res.redirect('/login');
        }
    };
    
    const userRoutes = require("./routes/user"); // เพิ่มการเรียกใช้งาน
    app.use("/user", userRoutes); // เพิ่มการใช้งาน user routes
    
    // Session Configuration
    app.use(session({
        secret: process.env.SESSION_SECRET || "mysecret",
        resave: false,
        saveUninitialized: false,
        store: sessionStore, // ใช้ MySQL Store
        cookie: {
            maxAge: 24 * 60 * 60 * 1000, // 24 hours
            secure: false, // true ถ้าใช้ HTTPS
            httpOnly: true,
        },
    }));
    
    // Middleware
    app.use(express.static(path.join(__dirname, "public")));
    app.use(express.json());
    app.use(express.urlencoded({ extended: true }));
    // Middleware เช็ค Session
    app.use((req, res, next) => {
        console.log("Session Middleware Checked");
        console.log("🔹 Session ID:", req.sessionID);
        console.log("🔹 Session Data:", req.session);
        next();
    });
    
    // View Engine
    app.set("view engine", "ejs");
    app.set("views", path.join(__dirname, "views"));
    
    // Routes
    const orderRoutes = require("./shop-routes/order");
    const cartRoutes = require("./shop-routes/cart");
    const indexRoutes = require("./shop-routes/index");
    
    app.use((req, res, next) => {
        res.locals.session = req.session;
        next();
    });
    
    app.use("/", indexRoutes);
    app.use("/cart", cartRoutes);
    app.use("/order", orderRoutes);