From 97c5918c692a662e6cfb1ea3e9bc3ac29f4854d8 Mon Sep 17 00:00:00 2001 From: Alomairi Date: Tue, 3 Sep 2024 09:54:37 +0000 Subject: [PATCH] arrange code , change port --- main.js | 151 ++++++++++++++++++++++---------------------------------- 1 file changed, 60 insertions(+), 91 deletions(-) diff --git a/main.js b/main.js index a756d7f..ece57c4 100644 --- a/main.js +++ b/main.js @@ -5,7 +5,7 @@ const mysql = require("mysql2/promise"); const config = require("./config/db.config.js"); const session = require('express-session'); -const PORT = process.env.PORT || 5000; // Default port is 5000 +const PORT = process.env.PORT || 8080; // Default port is 5000 const log = { yellow: '\x1b[33m%s\x1b[0m', //yellow @@ -29,7 +29,6 @@ const pool = mysql.createPool({ queueLimit: 0 }); - const app = express(); @@ -37,9 +36,9 @@ app.set('view engine', 'ejs'); app.set('views', path.join(__dirname, 'views')); app.use(session({ - secret: config.secret, - resave: true, - saveUninitialized: true + secret: config.secret, + resave: true, + saveUninitialized: true })); app.use(express.json()); app.use(express.urlencoded({ extended: true })); @@ -47,125 +46,95 @@ app.use(express.static(path.join(__dirname, 'static'))); -app.get('/x', function(request, response) { - if (request.session.loggedin) { - // Output username - // response.send('Welcome back, ' + request.session.username + '!'); -console.log(request.session.username , 'open main page'); +app.get('/x', function (request, response) { + if (request.session.loggedin) { + // Output username + // response.send('Welcome back, ' + request.session.username + '!'); + console.log(request.session.username, 'open main page'); // Render home page with username response.render('home', { username: request.session.username }); - - - - } else { - // Not logged in - // response.send('Please login to view this page!'); + } else { + // response.send('Please login to view this page!'); response.redirect('/login'); - } + } }); -app.get('/login', function(request, response) { - /// Render login template with any message from query parameters +app.get('/login', function (request, response) { + /// Render login template with any message from query parameters console.log('Message:', request.query.message); // Log the message response.render('login', { message: request.query.message || '' }); - - - - // response.sendFile(path.join(__dirname + '/login.html')); }); -app.post('/auth', async function(request, response) { +app.post('/auth', async function (request, response) { // Capture the input fields const { login, password } = request.body; // Ensure the input fields exist and are not empty if (login && password) { - try { - // Get a connection from the pool - const connection = await pool.getConnection(); - - // Execute SQL query - // const [rows] = await connection.execute( - // 'SELECT * FROM accounts WHERE username = ? AND password = ?', - // [username, password] - // ); + try { + // Get a connection from the pool + const connection = await pool.getConnection(); + const [rows] = await connection.execute( + 'SELECT * FROM accounts WHERE (username = ? OR email = ?) AND password = ?', + [login, login, password] + ); + // Release the connection back to the pool + connection.release(); - const [rows] = await connection.execute( - 'SELECT * FROM accounts WHERE (username = ? OR email = ?) AND password = ?', - [login, login, password] - ); - - // console.log(rows); - - - // Release the connection back to the pool - connection.release(); - - // If the account exists - if (rows.length > 0) { - // Authenticate the user - request.session.loggedin = true; - request.session.username = rows[0].username; - request.session.avatar = rows[0].avatar; - // request.session.username = username; - // Redirect to home page - console.log(rows); - - response.redirect('/'); - } else { - response.redirect('/login?message=Incorrect Username and/or Password!'); - } - } catch (error) { - console.error('Database query error:', error); - response.status(500).send('An error occurred while processing your request.'); + // If the account exists + if (rows.length > 0) { + // Authenticate the user + request.session.loggedin = true; + request.session.username = rows[0].username; + request.session.avatar = rows[0].avatar; + // Redirect to home page + response.redirect('/'); + } else { + response.redirect('/login?message=Incorrect Username and/or Password!'); } + } catch (error) { + console.error('Database query error:', error); + response.status(500).send('An error occurred while processing your request.'); + } } else { - // response.send('Please enter Username and Password!'); - response.redirect('/login?message=Please enter Username and Password!'); + // response.send('Please enter Username and Password!'); + response.redirect('/login?message=Please enter Username and Password!'); } - }); // http://localhost:3000/home -app.get('/', function(request, response) { - // If the user is loggedin - if (request.session.loggedin) { - // Output username - // response.send('Welcome back, ' + request.session.username + '!'); - +app.get('/', function (request, response) { + // If the user is loggedin + if (request.session.loggedin) { let avatarSrc = ''; - if (request.session.avatar) { - // Convert BLOB to Base64 if it exists - const avatarBase64 = Buffer.from(request.session.avatar).toString('base64'); - avatarSrc = `data:image/jpeg;base64,${avatarBase64}`; // Adjust MIME type as necessary - } - + if (request.session.avatar) { + // Convert BLOB to Base64 if it exists + const avatarBase64 = Buffer.from(request.session.avatar).toString('base64'); + avatarSrc = `data:image/jpeg;base64,${avatarBase64}`; // Adjust MIME type as necessary + } // Render home page with username - response.render('home', { + response.render('home', { username: request.session.username, avatar: avatarSrc - }); + }); - } else { - // Not logged in - // response.send('Please login to view this page!'); + } else { + // response.send('Please login to view this page!'); response.redirect('/login'); - } - response.end(); + } + response.end(); }); - - -// http://localhost:3000/logout -app.get('/logout', function(request, response) { +// http://localhost:8080/logout +app.get('/logout', function (request, response) { request.session.destroy((err) => { - if (err) { - return response.status(500).send('Failed to logout'); - } - response.redirect('/'); + if (err) { + return response.status(500).send('Failed to logout'); + } + response.redirect('/'); }); });