express routing

This commit is contained in:
Sam Hadow 2025-02-08 18:01:39 +01:00
parent 3c0da2e91f
commit ad0fcca2ee
10 changed files with 124 additions and 10 deletions

View File

@ -9,6 +9,9 @@
"author": "Sam Hadow",
"license": "BSD-3-Clause-Attribution",
"dependencies": {
"express": "^4.21.2"
"bootstrap": "^5.3.3",
"cookie-parser": "^1.4.7",
"express": "^4.21.2",
"socket.io": "^4.8.1"
}
}

View File

@ -1,11 +1,25 @@
const express = require('express')
const app = express()
const port = 3333
const express = require('express');
const app = express();
var http = require('http').Server(app);
const port = process.env.PORT || 3333;
app.set("port", port);
var io = require('socket.io')(http);
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.get('/', (request, result) => {
result.send('Hello World!')
})
app.use('/css', express.static(__dirname + '/node_modules/bootstrap/dist/css'));
app.use(express.static('public'));
const routes = require(__dirname + '/routes');
app.use("/", routes);
var server = http.listen(port, () => {
console.log(`server is running on port ${server.address().port}`);
});
io.on('connection', (socket) => {
socket.on('chat message', (msg) => {
console.log(`message: ${msg}, id: ${socket.id}`);
});
});
app.listen(port, () => {
console.log(`App listening on port ${port}`)
})

View File

@ -0,0 +1,22 @@
const accountController = {
getCookie: (req, res) => {
console.log("site loaded")
console.log(req.cookies)
var cookie = req.cookies.user;
if (!cookie) {
var randomNumber=Math.random().toString();
randomNumber=randomNumber.substring(2,randomNumber.length);
let options = {
maxAge: 86400000, // 1 day
httpOnly: true
}
// Set cookie
res.cookie("user", randomNumber, options);
console.log("cookie set");
}
res.redirect('/');
}
};
module.exports = accountController;

10
src/controllers/main.js Normal file
View File

@ -0,0 +1,10 @@
const mainController = {
root: (req, res) => {
res.json({
message: "Hello, World!",
});
}
};
module.exports = mainController;

24
src/public/index.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style.css">
<script src="/socket.io/socket.io.js" defer></script>
<script src="script.js" defer></script>
<!--load bootstrap-->
<link rel="stylesheet" href="/css/bootstrap.min.css" />
</head>
<body>
<div id="mainbody">
<div id="jswarn"> Please enable Javascript to use this app. </div>
<a href="./account/cookie" class="btn btn-primary">Get cookie</a>
<ul id="messages"></ul>
<form id="form" action="">
<input id="input" autocomplete="off" />
<button>Send</button>
</form>
</div>
</body>
</html>

14
src/public/script.js Normal file
View File

@ -0,0 +1,14 @@
var jswarn = document.getElementById('jswarn');
jswarn.innerText = '';
var socket = io();
var form = document.getElementById('form');
var input = document.getElementById('input');
form.addEventListener('submit', function(e) {
e.preventDefault();
if (input.value) {
socket.emit('chat message', input.value);
input.value = '';
}
});

0
src/public/style.css Normal file
View File

9
src/routes/account.js Normal file
View File

@ -0,0 +1,9 @@
const express = require("express");
const accountController = require("../controllers/account");
const router = express.Router();
router
.route("/cookie")
.get(accountController.getCookie);
module.exports = router;

9
src/routes/index.js Normal file
View File

@ -0,0 +1,9 @@
const express = require("express");
const rootRoutes = require('./root');
const accountRoutes = require('./account.js');
const router = express.Router();
router.use("/", rootRoutes);
router.use("/account", accountRoutes);
module.exports = router;

9
src/routes/root.js Normal file
View File

@ -0,0 +1,9 @@
const express = require("express");
const mainController = require("../controllers/main");
const router = express.Router();
router
.route("/")
.get(mainController.root);
module.exports = router;