working
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
|
||||
const socket = io();
|
||||
|
||||
form.addEventListener('submit', (e) => {
|
||||
document.getElementById('form').addEventListener('submit', (e) => {
|
||||
e.preventDefault();
|
||||
if (input.value) {
|
||||
socket.emit('chat message', input.value);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<script src="../js/js/login.js" defer></script>
|
||||
<script src="/static/js/login.js" defer></script>
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
58
index.js
58
index.js
@@ -1,11 +1,10 @@
|
||||
const express = require('express');
|
||||
const session = require('express-session');
|
||||
const port = 3000
|
||||
const app = express()
|
||||
const port = 3000;
|
||||
const app = express();
|
||||
|
||||
const path = require('path');
|
||||
const { insertUser, isUserExists, client } = require('./backend/db.js');
|
||||
const { chat } = require('./backend/socket.js');
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
const saltRounds = 10;
|
||||
@@ -15,26 +14,25 @@ const { createServer } = require('node:http');
|
||||
const server = createServer(app);
|
||||
const io = new Server(server);
|
||||
|
||||
require('dotenv').config()
|
||||
|
||||
//TODO change password option will be cool
|
||||
//TODO delete user option will be also cool
|
||||
require('dotenv').config();
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
app.use(express.static(path.join(__dirname, 'public')));
|
||||
app.use('/static', express.static('frontend'))
|
||||
app.use('/socket.io', express.static('node_modules/socket.io/client-dist'));
|
||||
app.use('/static', express.static('frontend'));
|
||||
app.use('/socket', express.static('node_modules/socket.io/client-dist'));
|
||||
app.use(session({
|
||||
secret: process.env.SESSION_SECRET,
|
||||
resave: true,
|
||||
saveUninitialized: true
|
||||
}));
|
||||
// aut login api
|
||||
app.post('/auth/login', async function(req, res) {
|
||||
|
||||
// auth login API
|
||||
app.post('/auth/login', async (req, res) => {
|
||||
await loginUser(req, res);
|
||||
});
|
||||
// auth signup api
|
||||
|
||||
// auth signup API
|
||||
app.post('/auth/signup', async (req, res) => {
|
||||
await signupUser(req, res);
|
||||
});
|
||||
@@ -42,34 +40,42 @@ app.post('/auth/signup', async (req, res) => {
|
||||
// serving the login page
|
||||
app.get('/login', (req, res) => {
|
||||
res.sendFile(path.join(__dirname, '/frontend/routes/login.html'));
|
||||
})
|
||||
});
|
||||
|
||||
// serving the signup page
|
||||
app.get('/signup', (req, res) => {
|
||||
res.sendFile(path.join(__dirname, '/frontend/routes/signup.html'));
|
||||
})
|
||||
});
|
||||
|
||||
// serving the chat page if logged in
|
||||
app.get('/', (req, res) => {
|
||||
if(req.session.loggedin){
|
||||
if (req.session.loggedin) {
|
||||
res.sendFile(path.join(__dirname, '/frontend/routes/chat.html'));
|
||||
} else {
|
||||
res.redirect('/login')
|
||||
res.redirect('/login');
|
||||
}
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
io.on('connection', (socket) => {
|
||||
console.log('a user connected');
|
||||
socket.on('disconnect', () => {
|
||||
console.log('user disconnected');
|
||||
});
|
||||
});
|
||||
|
||||
io.on('connection', (socket) => {
|
||||
socket.on('chat message', (msg) => {
|
||||
console.log('message: ' + msg);
|
||||
});
|
||||
});
|
||||
|
||||
// run server
|
||||
app.listen(port, () => {
|
||||
console.log(`Example app listening on port ${port}`)
|
||||
})
|
||||
server.listen(port, () => {
|
||||
console.log(`Chat app listening on port ${port}`);
|
||||
});
|
||||
|
||||
//signup function
|
||||
// signup function
|
||||
async function signupUser(req, res) {
|
||||
|
||||
let username = req.body.username.trim();
|
||||
let password = req.body.password.trim();
|
||||
|
||||
@@ -88,12 +94,10 @@ async function signupUser(req, res) {
|
||||
// Insert user
|
||||
await insertUser(username, hash);
|
||||
return res.status(200).send("Account successfully created <a href=/login>Login screen</a>");
|
||||
|
||||
} catch (err) {
|
||||
console.error('Error inserting data:', err);
|
||||
return res.status(500).send('Error inserting data');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// login function
|
||||
@@ -115,7 +119,7 @@ async function loginUser(req, res) {
|
||||
<p>Login successful!</p>
|
||||
<p>Redirecting to chat...</p>
|
||||
<script>
|
||||
setTimeout(() =>{
|
||||
setTimeout(() => {
|
||||
window.location.href = '/';
|
||||
}, 1500);
|
||||
</script>
|
||||
@@ -134,4 +138,4 @@ async function loginUser(req, res) {
|
||||
res.send('Please enter Username and Password!');
|
||||
}
|
||||
res.end();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user