Hogwarts Express CRUD
Doel
Je breidt een bestaande webtoepassing uit die een lijst van Harry Potter-spreuken toont. Je voegt functionaliteit toe om spreuken aan te maken, aan te passen en te verwijderen. De gegevens worden opgeslagen in een MongoDB-database. De front-end is opgebouwd met EJS.
Je kan het bestaande project vinden in het starter.zip bestand.
Wat is er al voorzien?
Een overzichtspagina met zoek- en sorteermogelijkheden
Een detailpagina per spreuk
Een MongoDB-verbinding
Een datastructuur
Spell
en een basistemplate met EJS
Opdracht
Breid de bestaande toepassing uit met de volgende functionaliteit:
1. Create
Voeg een GET-route toe voor
/spells/create
die een formulier toont.Voeg een POST-route toe die een nieuwe spreuk aanmaakt in de database.
Genereer het formulier dynamisch op basis van
res.locals.FIELDS
enres.locals.SPELL_TYPES
.Ken automatisch een uniek ID toe aan de nieuwe spreuk (hoogste bestaande ID + 1).
2. Update
Voeg een GET-route toe voor
/spells/:id/update
die het bestaande formulier toont, vooraf ingevuld met de huidige gegevens.Voeg een POST-route toe die de aangepaste gegevens opslaat.
Het
id
-veld moet read-only zijn.
3. Delete
Voeg een POST-route toe voor
/spells/:id/delete
die een spreuk verwijdert.Voeg op de overzichtspagina een verwijderknop toe per rij.
Gegevensstructuur
Gebruik de bestaande types:
Spell
voor de dataSpellField
voor de formuliervelden
Ondersteunde invoertypes zijn: text
, number
, en spelltype
(een dropdown).
Te bewerken of toe te voegen bestanden
index.ts
: routes toevoegendatabase.ts
: functies schrijven voorcreateSpell
,updateSpellById
,deleteSpellById
views/createSpell.ejs
enviews/updateSpell.ejs
: formulieren bouwenviews/index.ejs
: knoppen toevoegen voor "Create", "Update" en "Delete"
Wat wordt er verwacht?
Een werkend formulier voor het toevoegen van nieuwe spreuken
Mogelijkheid om bestaande spreuken te bewerken
Mogelijkheid om spreuken te verwijderen via de overzichtspagina
Alle formulieren gebruiken
FIELDS
enSPELL_TYPES
om inputs correct te genereren
Last updated