From 5327ac2f8b9124118c35093d8bcbc481fd30b5af Mon Sep 17 00:00:00 2001 From: Klaas Date: Wed, 29 May 2024 20:55:02 +0200 Subject: [PATCH] Errorhandling und Namen fix --- app.js | 104 ++++++++++++++++++++++++++++----------------- views/login.ejs | 4 ++ views/mitglied.ejs | 2 +- 3 files changed, 70 insertions(+), 40 deletions(-) diff --git a/app.js b/app.js index 69d070e..40c2e35 100644 --- a/app.js +++ b/app.js @@ -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}); } }) diff --git a/views/login.ejs b/views/login.ejs index c1ec6e0..4540bd5 100644 --- a/views/login.ejs +++ b/views/login.ejs @@ -1,6 +1,10 @@ <%- include('partials/header') %>

Login

+ +<% if (locals.message) { %> +

<%= message %>

+<% } %>
diff --git a/views/mitglied.ejs b/views/mitglied.ejs index 4dd10eb..f31ce20 100644 --- a/views/mitglied.ejs +++ b/views/mitglied.ejs @@ -1,7 +1,7 @@ <%- include('partials/header') %> <% birthday = new Date(mitglied.geburtsdatum) %> -

<%= teilnehmer.vorname %> <%= teilnehmer.nachname %>

+

<%= mitglied.vorname %> <%= mitglied.nachname %>

Geburtsdatum: <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)