Select Git revision
server.js 5.42 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({}, pool);
// Middleware isLoggedIn
const isLoggedIn = (req, res, next) => {
if (req.session.user) {
next();
} else {
res.redirect('/login');
}
};
// 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");
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);
// Route สำหรับ Checkout
app.get('/order/checkout', isLoggedIn, (req, res) => {
console.log("Session:", req.session); // ตรวจสอบ Session
res.render('checkout'); // แสดงหน้า Checkout
});
app.get('/register', (req, res) => {
res.render('register'); // ตรวจสอบว่า 'views/login.ejs' มีอยู่จริง
});