Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • fab08bf6eac597077dcb5328ec43b734fcd43d64
  • main default protected
2 results

app.js

Blame
  • app.js 3.05 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 postRoutes = require('./routes/posts'); // เส้นทางสำหรับบทความ
    const settingsRoutes = require('./routes/settings');
    
    const app = express();
    
    // Middleware
    app.use(cors());
    app.use(express.json());
    app.use(express.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    
    
    // ตั้งค่า Session
    app.use(session({
      secret: process.env.SESSION_SECRET || 'beaglelover',
      resave: false,
      saveUninitialized: false
    }));
    app.use((req, res, next) => {
      res.locals.user = req.session.user;
      next();
    });
    // เสิร์ฟไฟล์สแตติก
    app.use(express.static(path.join(__dirname, 'public')));
    
    // ตั้งค่า View Engine
    app.set('view engine', 'ejs');
    app.set('views', path.join(__dirname, 'views'));
    
    app.use('/auth', authRoutes);
    app.use('/settings', settingsRoutes);
    app.use('/posts', postRoutes);
    
    // Middleware ตรวจสอบการล็อกอิน
    
    // ---------------------- เส้นทางหลัก ----------------------
    // หน้า Login
    app.get('/', (req, res) => {
      res.render('auth/login', { error: null });
    });
    
    // หน้า Index (เฉพาะผู้ที่ล็อกอิน)
    // ตัวอย่างใน app.js
    app.get('/index', async (req, res) => {
      if (!req.session.user) return res.redirect('/');
      try {
        // ดึง posts จากฐานข้อมูล (หากต้องการ)
        const [posts] = await db.query(
          `SELECT p.*, u.username, c.name AS category_name 
           FROM posts p 
           JOIN users u ON p.user_id = u.id 
           JOIN categories c ON p.category_id = c.id 
           ORDER BY p.created_at DESC`
        );
        res.render('pages/index', { posts, user: req.session.user });
      } catch (error) {
        console.error('Error fetching posts:', error);
        res.render('pages/index', { posts: [], user: req.session.user });
      }
    });
    
    // ค้นหาบทความ (ค้นหาจาก title)