Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

app.js

Blame
  • app.js 2.18 KiB
    require('dotenv').config();
    const express = require('express');
    const session = require('express-session');
    const path = require('path');
    const cors = require("cors");
    const bodyParser = require('body-parser');
    const db = require('./db'); 
    const authRoutes = require('./routes/auth');
    const chatAIRouter = require('./routes/chatAI');
    
    const app = express();
    
    // Middlewares
    app.use(cors());
    app.use(express.json());
    app.use(express.urlencoded({ extended: true }));
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(bodyParser.json());
    
    // ตั้งค่า Session
    app.use(session({
      secret: process.env.SESSION_SECRET,
      resave: false,
      saveUninitialized: false
    }));
    
    // Serve Static Files
    app.use(express.static(path.join(__dirname, 'public')));
    
    // ตั้งค่า View Engine
    app.set('view engine', 'ejs');
    app.set('views', path.join(__dirname, 'views'));
    
    // ใช้ router สำหรับ Auth
    app.use('/auth', authRoutes);
    
    // ---------------------- Routes ----------------------
    app.get('/', (req, res) => {
      res.render('auth/login', { error: null });
    });
    
    app.get('/register', (req, res) => {
      res.render('auth/register', { error: null, errors: null });
    });
    
    app.get('/index', async (req, res) => {
      try {
        const [activities] = await db.query('SELECT * FROM activity');
        res.render('pages/index', { activities, user: req.session.user });
      } catch (error) {
        console.error('Error fetching activities:', error);
        res.status(500).send('เกิดข้อผิดพลาดในการดึงข้อมูล');
      }
    });
    
    // Routes ที่ต้องล็อกอินก่อนเข้าใช้งาน
    const protectedRoutes = ['/booking', '/chat', '/dashboard', '/settings'];
    protectedRoutes.forEach(route => {
      app.get(route, (req, res) => {
        if (!req.session.user) return res.redirect('/');
        res.render(`pages${route}`, { user: req.session.user });
      });
    });
    
    // Chat AI Route
    app.use('/api', chatAIRouter);
    app.get('/chatAI', (req, res) => {
      res.render('pages/chatAI', { user: req.session.user });
    });
    
    // Start Server
    const port = process.env.PORT || 3000;
    app.listen(port, () => {
      console.log(`🚀 Server started on port ${port}`);
    });