Översikt
En absolut nyckel till att skapa serverbaserade webbapplikationer är möjligheten till att kunna spara data för användaren. För detta används i normalfallet någon form av databas. Kursen går inte specifikt igenom olika typer av databaser, men vi väljer att arbeta med en så kallad dokumentdatabas och dessa veckor tittar vi på hur vi kan spara ner data i en sådan databas.
Händer i veckan
Section titled “Händer i veckan”Vi samlar ihop vad som hänt under veckorna 7-9 med Express och med det som presenteras under dessa båda veckor så är vi redo att påbörja examinationsuppgiften B1.
Glöm inte bort att jobba igenom övningsuppgiften från vecka 7-9, den som heter “Follow The Route”. Den hjälper dig igång med Express.
Därefter så är det dags att komma igång med databasen MongoDB och där får vi hjälp i övningsuppgiften “Pure Approval”.
“Stå-upp”-vlogg
Section titled ““Stå-upp”-vlogg”Tidigare års “stå-upp”-vlogg för er som vill ha en introduktion till kursveckan.
Den här inspelningen är delad mellan de två kurserna: första delen avslutar 1DV025, andra delen — den som sammanfattas här — handlar om 1DV026:s kursvecka 10-11. Från och med nu gäller vloggarna enbart 1DV026.
Persistent data
Section titled “Persistent data”Kursen är nu inne i delkurs B och skriver serverrenderade webbapplikationer med Node.js och Express. Kursvecka 10-11 handlar om persistent data, det vill säga att spara data över tid, till exempel användaruppgifter i en databas på servern, så att applikationen vet vad användaren har gjort tidigare.
Det blir en hel del fokus på databaser, men det här är ingen databaskurs. Kursen använder databashanteraren MongoDB och lär ut hur man använder och arbetar med en databas på ett enkelt sätt. Att designa databaser kommer i en senare kurs.
Blocket är två veckor långt, eftersom många har examinationer i den första veckan. Den som vill komma igång redan under kursvecka 10 kan börja med inspelningen om databaser.
Inspelningarna
Section titled “Inspelningarna”- Databaser svarar på vad persistent data är, och visar hur MongoDB körs och hur man ansluter till den med Mongoose.
- CRUD står för Create, Read, Update, Delete och handlar om hur man hanterar data i databasen från en Express-applikation.
- Sessioner ger HTTP ett minne. Det är det som gör att en webbplats kommer ihåg att du är inloggad. Autentisering och åtkomstkontroll kommer i nästa block.
- PRG (Post/Redirect/Get) är ett mönster som förhindrar dubbelpostningar, till exempel när användaren klickar två gånger eller backar i webbläsaren och får frågan om formuläret ska skickas igen. Mönstret används tillsammans med sessioner för flashmeddelanden till användaren.
- Just Task It är en enkel att göra-lista som exempelapplikation. Den följer med genom utbildningen: i den här kursen får den även loggning, i årskurs två byggs den ut och i årskurs tre driftsätts den. Det lönar sig att sätta sig in i den ordentligt.
Loggning läggs till eftersom kursen senare ska driftsätta applikationer. Då behöver man kunna se vad som händer i applikationen, och varför den kraschar när den gör det.
Inspelningarna med en länk “Titta via StreamYard” är nyinspelade. De utan länk är äldre.
Övningen och B1
Section titled “Övningen och B1”Det finns inga läsanvisningar för blocket. Övningsuppgiften “Pure Approval” har lösningsförslag och en inspelning. Den går ut på att bygga en enkel CRUD-applikation där man matar in heltal inom angivna gränser, med rätt- och felmeddelanden. Den ligger nära det du ska göra i examinationsuppgiften B1, även om B1 dessutom har inloggning.
Kursvecka 10-13 är centrala. Den som tar till sig det som gås igenom kan i princip skriva de flesta webbapplikationer som finns. Ramverk, språk och databashanterare varierar, men det här är webbens kärna. Veckorna leder fram till B1, som kursledningen räknar till de viktigaste examinationsuppgifterna i utbildningen. Den lägger grunden för hur webben faktiskt fungerar, med bland annat inloggning och lösenord.
Från och med nu är kursblocken större, och du förväntas ta ett större ansvar för din egen progression. Handledningen fortsätter som vanligt, men annonseras i fortsättningen bara i 1DV026:s Slack-kanal.
Stödjande inspelningar
Section titled “Stödjande inspelningar”Persistent data - Databaser
Section titled “Persistent data - Databaser”- Introduktion
- Överblick av en CRUD-applikation
- Persistent data
- Du kommer att använda MongoDB
- Olika typer av databaser
- MongoDBs ekosystem
- MongoDB som en dockercontainer
- Docker Hub
- Docker Desktop
- Ansluta till MongoDB med Mongoose
- Server.js - Ansluta
- Allt börjar med ett Schema
- Konvertera ett schema till en modell
- “Just Task It” - Exempelapplikation
- Basscheman
Persistent data - CRUD
Section titled “Persistent data - CRUD”- Introduktion
- CRUD, Verbs and Actions
- Mappa Routes till Controller
- Ladda in dokument
- C - Create
- R - Read
- U - Update
- D - Delete
Sessioner
Section titled “Sessioner”- Introduktion
- Servern har ingen state
- Upprätthålla state med hjälp av Sessioner
- Spara sessionsdata
- Hantera Sessioner i Express
- Använda sessionsvariabler
- Introduktion
- Skydda mot dubbelposter
- Post/Redirect/Get (PRG)
- Vad är ett “Flashmeddelande”?
- Implementera PRG och Flashmeddelanden
- Avslutning
Exempel - Just Task It
Section titled “Exempel - Just Task It”Titta via StreamYard · GitLab-projekt - Just Task It
Övningar
Section titled “Övningar”Under Övningsuppgifter hittar du övningsuppgifter som det är lämpligt att du arbetar med under veckorna.
Handledning
Section titled “Handledning”Skicka gärna in frågor på förhand via vårt formulär som du når här:
Examinationsuppgift B1
Section titled “Examinationsuppgift B1”Det kan vara bra att påbörja examinationsuppgift B1 dessa veckor.
Instruktioner för uppgiften hittar du här
Fortsättningsregistrering
Section titled “Fortsättningsregistrering”Eftersom hösttermin blir till vårtermin och kursen sträcker sig över båda terminerna så behöver du göra en fortsättningsregistrering. Hur du gör det hittar du under Registrering i studieguiden.
Studiefrågor
Section titled “Studiefrågor”Här är ett antal frågor som du kan försöka besvara och diskutera tillsammans med din Ai-kompis. Tveka inte att lyfta någon av frågorna till handledningen för att fortsätta diskussionen med lärare och studiekamrater.
Frågor att diskutera med din Ai-kompis
- Berätta kort om ramverket Express.js och hur det fungerar i Node.js. Berätta så det passar en högskolestudent på första året som kan programmera i Node.js och i webbläsaren rent allmänt.
- Förklara kort om databasen MongoDB och hur man kan koppla den till Express.
- Förklara kort hur CRUD fungerar och hur ett sådant exempel hade sett ut.
- Hur ser koden ut om man hade genererat webbsidor istället för JSON? Till exempel med template-språket EJS?
Här är en utskrift från hur det såg ut när jag diskuterade ovan frågor med min Ai-kompis Ajj.
Här följer tips till hur du kan prioritera bland kursmaterialet för att komma igång med veckan.
- Försäkra dig om att du tittat igenom föreläsningarna om Express i vecka 7-9.
- Jobba sedan med övningsuppgiften “Follow The Route”.
- Därefter börjar du titta igenom de föreläsningar som ligger i vecka 10-11.
- Under tiden du tittar igenom föreläsningarna så kan du även börja jobba med övningsuppgiften “Pure Approval”.
- I veckans sista föreläsning så förekommer ett exempelprogram som heter “Just Task It”, det kan vara väl investerad tid att titta igenom det.
- Under vecka 11 kan det vara dags att titta igenom vad som skall göras i examinationsuppgiften B1-CRUD.