express routing
This commit is contained in:
parent
3c0da2e91f
commit
ad0fcca2ee
@ -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"
|
||||
}
|
||||
}
|
||||
|
32
src/app.js
32
src/app.js
@ -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}`)
|
||||
})
|
||||
|
22
src/controllers/account.js
Normal file
22
src/controllers/account.js
Normal 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
10
src/controllers/main.js
Normal 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
24
src/public/index.html
Normal 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
14
src/public/script.js
Normal 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
0
src/public/style.css
Normal file
9
src/routes/account.js
Normal file
9
src/routes/account.js
Normal 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
9
src/routes/index.js
Normal 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
9
src/routes/root.js
Normal 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;
|
Loading…
x
Reference in New Issue
Block a user