Gitlab@Informatics

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

server.js

Blame
  • server.js 6.87 KiB
    const express = require('express');
    const path = require('path');
    const bcrypt = require('bcryptjs');
    const session = require('express-session');
    const mysql = require('mysql2');
    const app = express();
    
    // การตั้งค่าการเชื่อมต่อกับฐานข้อมูล
        const pool = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'proj3'
    });
    
    // ตั้งค่า view engine เป็น EJS
    app.set('view engine', 'ejs');
    app.set('views', path.join(__dirname, 'views'));
    
    // ใช้ session สำหรับเก็บข้อมูลของผู้ใช้
    app.use(session({
        secret: 'your-secret-key',
        resave: false,
        saveUninitialized: true,
    }));
    
    // ให้บริการไฟล์จากโฟลเดอร์ public
    app.use(express.static(path.join(__dirname, 'public')));
    
    // รับข้อมูลจากฟอร์ม
    app.use(express.urlencoded({ extended: true }));
    
    // หน้าแรก
    app.get('/', (req, res) => {
        res.render('home');
    });
    
    // หน้า home (เปิดให้ทุกคนเข้าถึงได้)
    app.get('/home', (req, res) => {
        res.render('home');
    });
    
    // หน้า login
    app.get('/login', (req, res) => {
        res.render('login');
    });
    
    // ตรวจสอบการ login
    app.post('/login', (req, res) => {
        const { username, password } = req.body;
        const query = 'SELECT * FROM users WHERE username = ?';
    
        pool.query(query, [username], (err, results) => {
            if (err) return res.send('Error occurred while logging in');
            if (results.length > 0) {
                bcrypt.compare(password, results[0].password, (err, isMatch) => {
                    if (err) return res.send('Error occurred while comparing password');
                    if (isMatch) {
                        req.session.username = username;
                        req.session.user_id = results[0].id;
                        res.redirect('/products');
                    } else {
                        res.render('login', { error: 'รหัสผ่านไม่ถูกต้อง' });
                    }
                });
            } else {
                res.render('login', { error: 'ไม่พบผู้ใช้' });
            }
        });
    });