53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
const express = require('express')
|
|
const fs = require('fs');
|
|
const bodyParser = require('body-parser')
|
|
const path = require('path')
|
|
var bcrypt = require('bcrypt');
|
|
const PORT = process.env.PORT || 5000
|
|
|
|
const logins = new Map();
|
|
logins.set("sander", "$2b$10$6P.6pE7M/6C9l/xXKDxJFucTL313GwESnhZ3aAqtVnv.ouLca/y6a");
|
|
|
|
express()
|
|
.use(express.urlencoded({ extended: true }))
|
|
.use(express.static(path.join(__dirname, '/public')))
|
|
.set('views', path.join(__dirname, 'views'))
|
|
.set('view engine', 'ejs')
|
|
.get("/data", (req, res) => sendData(req, res))
|
|
.get('/', (req, res) => res.render('pages/index'))
|
|
.post('/submit-form', (req, res) => appendToStorage(req, res))
|
|
.listen(PORT, () => console.log(`Listening on ${PORT}`));
|
|
|
|
function appendToStorage(req, res) {
|
|
if (req.body.username === '' || req.body.password === '') {
|
|
res.render('pages/error');
|
|
} else {
|
|
if (!correctCredentials(req.body.username, req.body.password)) {
|
|
res.render('pages/error');
|
|
} else {
|
|
fs.appendFile("dat", req.body.timestamp + ", " + req.body.username + ", " + req.body.emotion + "\n", err => {
|
|
if (err) {
|
|
return console.log(err);
|
|
}
|
|
});
|
|
res.render('pages/thanks');
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function sendData(req, res) {
|
|
fs.readFile("dat", (err, data) => {
|
|
if (err) {
|
|
console.error(err);
|
|
res.render('pages/error');
|
|
} else {
|
|
return res.send(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
function correctCredentials(username, password) {
|
|
return bcrypt.compareSync(password, logins.get(username));
|
|
}
|