From 38974c5bf9a6f6e7e5edc753847187cf4cec5434 Mon Sep 17 00:00:00 2001
From: 65160381 <65160381@go.buu.ac.th>
Date: Tue, 25 Mar 2025 00:28:18 +0700
Subject: [PATCH] 2

---
 app.js | 71 ++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 44 insertions(+), 27 deletions(-)

diff --git a/app.js b/app.js
index d1c564b..bec11b3 100644
--- a/app.js
+++ b/app.js
@@ -2,42 +2,59 @@ require('dotenv').config(); // โหลดค่าตัวแปรจาก
 
 const express = require('express');
 const mysql = require('mysql2/promise');
-const path = require('path');
 const bcrypt = require('bcrypt');
 const session = require('express-session');
 const cookieParser = require('cookie-parser');
 
+const app = express(); // ต้องมีการสร้าง express app
+
+// Middleware สำหรับ parse cookie และ JSON
+app.use(express.json());
+app.use(express.urlencoded({ extended: true }));
+app.use(cookieParser());
+
 // Session configuration
 app.use(session({
-    secret: process.env.DB_SESSION || "melon",
+    secret: process.env.DB_SESSION || 'melon',
     resave: false,
     saveUninitialized: true,
-    cookie: { secure: false }  // ใช้ false ถ้าคุณไม่ใช้ https, ถ้าใช้ https ใช้ true
-  }));
-  
-  // Database configuration
-  const pool = mysql.createPool({
-      host: process.env.DB_HOST || "10.104.20.74",
-      port: process.env.DB_PORT || "3306",
-      user: process.env.DB_USER || "root",
-      password: process.env.DB_PASSWORD || "TNSypb73606",
-      database: process.env.DB_NAME || "project",
-      waitForConnections: true,
-      connectionLimit: 10,
-      queueLimit: 0
-  });
-
-
-
-
-
-
-
-
-
+    cookie: {
+        secure: process.env.NODE_ENV === 'production', // secure เมื่อเป็น production mode
+        httpOnly: true, // ป้องกันการเข้าถึงผ่าน JavaScript
+        maxAge: 1000 * 60 * 60 * 24 // อายุของ session (1 วัน)
+    }
+}));
+
+// Database configuration
+const pool = mysql.createPool({
+    host: process.env.DB_HOST || 'localhost',
+    port: process.env.DB_PORT || '3306',
+    user: process.env.DB_USER || 'root',
+    password: process.env.DB_PASSWORD || '',
+    database: process.env.DB_NAME || 'project',
+    waitForConnections: true,
+    connectionLimit: 10,
+    queueLimit: 0
+});
+
+// ทดสอบการเชื่อมต่อกับฐานข้อมูล
+pool.getConnection()
+    .then(connection => {
+        console.log('✅ Database connected successfully!');
+        connection.release();
+    })
+    .catch(err => {
+        console.error('❌ Database connection failed:', err);
+        process.exit(1); // หยุดโปรแกรมหากเชื่อมต่อไม่สำเร็จ
+    });
+
+// ตัวอย่าง route ทดสอบ
+app.get('/', (req, res) => {
+    res.send('Hello World!');
+});
 
 // Start the server
 const port = process.env.PORT || 3000;
 app.listen(port, () => {
-    console.log(`Server started on port ${port}`);
-});
\ No newline at end of file
+    console.log(`🚀 Server started on port ${port}`);
+});
-- 
GitLab