Select Git revision
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}`);
});