arrange code , change port
This commit is contained in:
parent
619c429d36
commit
97c5918c69
151
main.js
151
main.js
|
@ -5,7 +5,7 @@ const mysql = require("mysql2/promise");
|
||||||
const config = require("./config/db.config.js");
|
const config = require("./config/db.config.js");
|
||||||
const session = require('express-session');
|
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 = {
|
const log = {
|
||||||
yellow: '\x1b[33m%s\x1b[0m', //yellow
|
yellow: '\x1b[33m%s\x1b[0m', //yellow
|
||||||
|
@ -29,7 +29,6 @@ const pool = mysql.createPool({
|
||||||
queueLimit: 0
|
queueLimit: 0
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
@ -37,9 +36,9 @@ app.set('view engine', 'ejs');
|
||||||
app.set('views', path.join(__dirname, 'views'));
|
app.set('views', path.join(__dirname, 'views'));
|
||||||
|
|
||||||
app.use(session({
|
app.use(session({
|
||||||
secret: config.secret,
|
secret: config.secret,
|
||||||
resave: true,
|
resave: true,
|
||||||
saveUninitialized: true
|
saveUninitialized: true
|
||||||
}));
|
}));
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(express.urlencoded({ extended: true }));
|
app.use(express.urlencoded({ extended: true }));
|
||||||
|
@ -47,125 +46,95 @@ app.use(express.static(path.join(__dirname, 'static')));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app.get('/x', function(request, response) {
|
app.get('/x', function (request, response) {
|
||||||
if (request.session.loggedin) {
|
if (request.session.loggedin) {
|
||||||
// Output username
|
// Output username
|
||||||
// response.send('Welcome back, ' + request.session.username + '!');
|
// response.send('Welcome back, ' + request.session.username + '!');
|
||||||
console.log(request.session.username , 'open main page');
|
console.log(request.session.username, 'open main page');
|
||||||
// Render home page with username
|
// Render home page with username
|
||||||
response.render('home', { username: request.session.username });
|
response.render('home', { username: request.session.username });
|
||||||
|
} else {
|
||||||
|
// response.send('Please login to view this page!');
|
||||||
|
|
||||||
} else {
|
|
||||||
// Not logged in
|
|
||||||
// response.send('Please login to view this page!');
|
|
||||||
response.redirect('/login');
|
response.redirect('/login');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/login', function(request, response) {
|
app.get('/login', function (request, response) {
|
||||||
/// Render login template with any message from query parameters
|
/// Render login template with any message from query parameters
|
||||||
console.log('Message:', request.query.message); // Log the message
|
console.log('Message:', request.query.message); // Log the message
|
||||||
response.render('login', { message: request.query.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
|
// Capture the input fields
|
||||||
const { login, password } = request.body;
|
const { login, password } = request.body;
|
||||||
|
|
||||||
// Ensure the input fields exist and are not empty
|
// Ensure the input fields exist and are not empty
|
||||||
if (login && password) {
|
if (login && password) {
|
||||||
try {
|
try {
|
||||||
// Get a connection from the pool
|
// Get a connection from the pool
|
||||||
const connection = await pool.getConnection();
|
const connection = await pool.getConnection();
|
||||||
|
const [rows] = await connection.execute(
|
||||||
// Execute SQL query
|
'SELECT * FROM accounts WHERE (username = ? OR email = ?) AND password = ?',
|
||||||
// const [rows] = await connection.execute(
|
[login, login, password]
|
||||||
// 'SELECT * FROM accounts WHERE username = ? AND password = ?',
|
);
|
||||||
// [username, password]
|
// Release the connection back to the pool
|
||||||
// );
|
connection.release();
|
||||||
|
|
||||||
const [rows] = await connection.execute(
|
// If the account exists
|
||||||
'SELECT * FROM accounts WHERE (username = ? OR email = ?) AND password = ?',
|
if (rows.length > 0) {
|
||||||
[login, login, password]
|
// Authenticate the user
|
||||||
);
|
request.session.loggedin = true;
|
||||||
|
request.session.username = rows[0].username;
|
||||||
// console.log(rows);
|
request.session.avatar = rows[0].avatar;
|
||||||
|
// Redirect to home page
|
||||||
|
response.redirect('/');
|
||||||
// Release the connection back to the pool
|
} else {
|
||||||
connection.release();
|
response.redirect('/login?message=Incorrect Username and/or Password!');
|
||||||
|
|
||||||
// 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.');
|
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Database query error:', error);
|
||||||
|
response.status(500).send('An error occurred while processing your request.');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// response.send('Please enter Username and Password!');
|
// response.send('Please enter Username and Password!');
|
||||||
response.redirect('/login?message=Please enter Username and Password!');
|
response.redirect('/login?message=Please enter Username and Password!');
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// http://localhost:3000/home
|
// http://localhost:3000/home
|
||||||
app.get('/', function(request, response) {
|
app.get('/', function (request, response) {
|
||||||
// If the user is loggedin
|
// If the user is loggedin
|
||||||
if (request.session.loggedin) {
|
if (request.session.loggedin) {
|
||||||
// Output username
|
|
||||||
// response.send('Welcome back, ' + request.session.username + '!');
|
|
||||||
|
|
||||||
let avatarSrc = '';
|
let avatarSrc = '';
|
||||||
if (request.session.avatar) {
|
if (request.session.avatar) {
|
||||||
// Convert BLOB to Base64 if it exists
|
// Convert BLOB to Base64 if it exists
|
||||||
const avatarBase64 = Buffer.from(request.session.avatar).toString('base64');
|
const avatarBase64 = Buffer.from(request.session.avatar).toString('base64');
|
||||||
avatarSrc = `data:image/jpeg;base64,${avatarBase64}`; // Adjust MIME type as necessary
|
avatarSrc = `data:image/jpeg;base64,${avatarBase64}`; // Adjust MIME type as necessary
|
||||||
}
|
}
|
||||||
|
|
||||||
// Render home page with username
|
// Render home page with username
|
||||||
response.render('home', {
|
response.render('home', {
|
||||||
username: request.session.username,
|
username: request.session.username,
|
||||||
avatar: avatarSrc
|
avatar: avatarSrc
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Not logged in
|
// response.send('Please login to view this page!');
|
||||||
// response.send('Please login to view this page!');
|
|
||||||
response.redirect('/login');
|
response.redirect('/login');
|
||||||
}
|
}
|
||||||
response.end();
|
response.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// http://localhost:8080/logout
|
||||||
|
app.get('/logout', function (request, response) {
|
||||||
// http://localhost:3000/logout
|
|
||||||
app.get('/logout', function(request, response) {
|
|
||||||
request.session.destroy((err) => {
|
request.session.destroy((err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return response.status(500).send('Failed to logout');
|
return response.status(500).send('Failed to logout');
|
||||||
}
|
}
|
||||||
response.redirect('/');
|
response.redirect('/');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue