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