Errorhandling und Namen fix

This commit is contained in:
Klaas 2024-05-29 20:55:02 +02:00
parent 13db1314c4
commit 5327ac2f8b
3 changed files with 70 additions and 40 deletions

104
app.js
View File

@ -216,7 +216,8 @@ app.post('/register', async (req, res) => {
res.redirect('/login');
} catch (error) {
console.error('Error registering user:', error);
res.status(500).send('Internal Server Error');
const message = 'Error registering user:' + error;
res.render('error', {session: req.session, message});
}
});
@ -242,14 +243,17 @@ app.post('/login', async (req, res) => {
res.redirect('/freischaltung')
}
} else {
res.redirect('/login');
const message = 'Falscher Benutzername oder falsches Passwort';
res.render('login', {session: req.session, username, message});
}
} else {
res.redirect('/login');
const message = 'Falscher Benutzername oder falsches Passwort';
res.render('login', {session: req.session, username, message});
}
} catch (error) {
console.error('Error logging in:', error);
res.status(500).send('Internal Server Error');
const message = 'Error logging in:' + error;
res.render('error', {session: req.session, message});
}
});
@ -283,7 +287,8 @@ app.post('/userrights', requireAuth, requireAdmin, async (req, res) => {
res.redirect('/admin');
} catch (error) {
console.error('Error activating user:', error);
res.status(500).send('Internal Server Error');
const message = 'Error activating user:' + error;
res.render('error', {session: req.session, message});
}
});
@ -308,17 +313,21 @@ app.post('/send-password', async (req, res) => {
transporter.sendMail(mailOptions, (err) => {
if (err) {
console.error('Error sending email:', err);
res.status(500).send('Error sending email');
const message = 'Error sending Mail:' + error;
res.render('error', {session: req.session, message});
} else {
res.send('Password reset link sent');
const message = 'Password reset link sent';
res.render('error', {session: req.session, message});
}
});
} else {
res.status(400).send('Email not found');
const message = 'Email not found';
res.render('error', {session: req.session, message});
}
} catch (error) {
console.error('Error in forgot-password:', error);
res.status(500).send('Internal Server Error');
const message = 'Error in forgot-password';
res.render('error', {session: req.session, message});
}
});
@ -334,11 +343,13 @@ app.get('/reset-password/:token', async (req, res) => {
if (userResult.rows.length > 0) {
res.render('reset-password', { token }); // Stelle sicher, dass es eine reset-password.ejs gibt
} else {
res.status(400).send('Password reset token is invalid or has expired');
const message = 'Token ungültig oder abgelaufen';
res.render('error', {session: req.session, message});
}
} catch (error) {
console.error('Error in reset-password:', error);
res.status(500).send('Internal Server Error');
const message = 'Error in reset-password';
res.render('error', {session: req.session, message});
}
});
@ -353,11 +364,13 @@ app.post('/reset-password/:token', async (req, res) => {
await pool.query('UPDATE users SET password = $1, reset_password_token = NULL, reset_password_expires = NULL WHERE id = $2', [hashedPassword, user.id]);
res.redirect('/login');
} else {
res.status(400).send('Password reset token is invalid or has expired');
const message = 'Token ungültig oder abgelaufen';
res.render('error', {session: req.session, message});
}
} catch (error) {
console.error('Error in reset-password:', error);
res.status(500).send('Internal Server Error');
const message = 'Error in reset-password';
res.render('error', {session: req.session, message});
}
});
@ -379,7 +392,8 @@ app.post('/profile', requireAuth, async (req, res) => {
res.redirect('/profile');
} catch (error) {
console.error('Error updating profile:', error);
res.status(500).send('Internal Server Error');
const message = 'Error updating profile:' + error;
res.render('error', {session: req.session, message});
}
});
@ -405,9 +419,10 @@ app.post('/update-training', requireAuth, async (req, res) => {
await pool.query('UPDATE trainings SET aufwaermen = $1 WHERE id = $2', [ spielId, trainingId ]);
}
res.redirect('/training');
} catch (err) {
console.error(err);
res.send("Error " + err);
} catch (error) {
console.error(error);
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
});
@ -421,9 +436,10 @@ app.post('/update-leader', requireAuth , async (req, res) => {
await pool.query('UPDATE trainings SET spielleiter = $1 WHERE id = $2', [leaderId, trainingId]);
}
res.redirect('/training');
} catch (err) {
console.error(err);
res.send("Error " + err);
} catch (error) {
console.error(error);
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
});
@ -440,9 +456,9 @@ try {
const teilnehmerID = await pool.query('INSERT INTO teilnehmende (name, geburtsdatum, adresse) VALUES ($1, $2, $3) RETURNING id', [name, geburt, adresse]);
putInRiege(riege, teilnehmerID);
res.redirect('/riege');
}catch (err) {
console.error(err);
res.send("Error " + err);
}catch (error) {
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
})
@ -495,9 +511,10 @@ app.get('/training', requireAuth, async (req, res) => {
nextTraining,
moment
});
} catch (err) {
console.error(err);
res.send("Error " + err);
} catch (error) {
console.error(error);
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
});
@ -505,7 +522,7 @@ app.get('/riege', requireAuth, async (req, res) => {
try {
// Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung
const result = await pool.query(`
SELECT r.riegennummer, t.id, t.name, t.geburtsdatum, r.helfer
SELECT r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer
FROM riegen r
JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id
ORDER BY r.riegennummer, t.geburtsdatum ASC
@ -521,6 +538,8 @@ app.get('/riege', requireAuth, async (req, res) => {
riegen[row.riegennummer].push({
id: row.id,
name: row.name,
vorname: row.vorname,
nachname: row.nachname,
age: age,
helfer: row.helfer,
});
@ -529,7 +548,8 @@ app.get('/riege', requireAuth, async (req, res) => {
res.render('riegen', { riegen: riegen, session: req.session });
} catch (error) {
console.error('Error fetching riegen:', error);
res.status(500).send('Internal Server Error');
const message = 'Error fetching riegen:' + error;
res.render('error', {session: req.session, message});
}
});
@ -543,9 +563,10 @@ app.get('/teilnehmer', requireAuth, async (req, res) => {
})).sort((a, b) => b.age - a.age);
res.render('teilnehmer', { teilnehmende, session: req.session });
} catch (err) {
console.error(err);
res.send("Error " + err);
} catch (error) {
console.error(error);
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
});
@ -574,7 +595,8 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => {
}
} catch (error) {
console.error('Error in Mitglied:', error);
res.status(500).send('Internal Server Error');
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
});
@ -598,9 +620,10 @@ app.post('/update-mitglied', requireAdmin, async (req, res) => {
}
res.redirect('/mitglied/' + id);
} catch (err) {
console.error(err);
res.send("Error " + err);
} catch (error) {
console.error(error);
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
});
@ -622,7 +645,8 @@ app.get('/spiele', async (req, res) => {
res.render('spiele', { spiele, session: req.session });
} catch (error) {
console.error('Error in Mitglied:', error);
res.status(500).send('Internal Server Error');
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
})
@ -635,7 +659,8 @@ app.get('/spiel/:id', async (req, res) => {
res.render('spiel', { spiel, session: req.session });
} catch (error) {
console.error('Error in Mitglied:', error);
res.status(500).send('Internal Server Error');
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
})
@ -646,8 +671,9 @@ try {
const queryResult = await pool.query('UPDATE spiele set material = $1, regeln = $2, dauer = $3, variationen = $4 Where id = $5 ', [material, regeln, dauer, variationen, id]);
res.redirect('/spiel/' + id);
} catch (error) {
console.error('Error in Mitglied:', error);
res.status(500).send('Internal Server Error');
console.error('Error in edit Spiel:', error);
const message = 'Error:' + error;
res.render('error', {session: req.session, message});
}
})

View File

@ -1,6 +1,10 @@
<%- include('partials/header') %>
<h1>Login</h1>
<% if (locals.message) { %>
<p><%= message %></p>
<% } %>
<form action="/login" method="post">
<div class="mb-3">
<label for="username" class="form-label">Username</label>

View File

@ -1,7 +1,7 @@
<%- include('partials/header') %>
<% birthday = new Date(mitglied.geburtsdatum) %>
<h1> <%= teilnehmer.vorname %> <%= teilnehmer.nachname %> </h1>
<h1> <%= mitglied.vorname %> <%= mitglied.nachname %> </h1>
<div id="view" class="mt-5">
<strong> Geburtsdatum: </strong> <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)</br>