Introduktion
Webbserverprogrammering med Node och Express
Vad Àr Node?
Node.js (Node) Àr en server. Beskrivningen pÄ nodejs.org krÀver dock sin förklaring.
As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications.
Node Àr byggt pÄ en javascriptmotor (Chromes V8) för att kunna anvÀnda Javascript pÄ en server. Node kan fungera som en en webbserver och fyller samma roll som webbservern Apache i LAMP.
Installation och förberedelse
Den hÀr guiden utgÄr frÄn materialet kring Windows Subsystem for Linux (WSL). Den Node version som kommer att anvÀndas Àr 14, vilket Àr Nodes Long Term Support (LTS) version. För att installera version 14 av Node gÄr det inte att köra apt install node direkt.
Kontrollera sedan den installerade versionen av Node, bör vara 14.x.
Med node följer Node Package Manager (npm), bör vara 6.x.
NÀsta steg Àr att installera Express och Express generator. Express Àr ett minimalistiskt ramverk för Node. Express underlÀttar skapandet av en webbserver med Node. Express kommer att installeras globalt pÄ systemet, nÄgot som krÀver sudo.
Kontrollera sedan att det fungerade med.
Ett första projekt
För att skapa grunden till ett webbprojekt sÄ anvÀnds Express generator.
Var alltid vÀldigt noga med att köra kommandon frÄn rÀtt mapp. Skapa inte Git-repon eller Express-projekt i c:\
Skapa en mapp för projektet, gÄ in i mappen och kör Express.
Express generator skapar med detta kommando grund-strukturen för en app. Express generator körs med parametrarna view, css och git.
View vÀljer den motor (pÄ engelska template engine), templatmotor, som Express anvÀder. I det hÀr fallet vÀljer vi att inte anvÀnda en motor för detta. DÄ genereras statiska filer som default. Men vi kommer att installera och anvÀnda Nunjucks för detta.
Css vÀljer att Express ska anvÀnda sig av sass/scss för projektets stilar.
Git skapar en .gitignore fil i projektet för att undvika att filer som inte ska finnas pÄ Git hamnar dÀr(node_modules mappen bland annat).
Node-projekt krÀver i allmÀnhet ett antal NPM-paket för att fungera. Express Àr inget undantag och för att slutföra installationen behöver NPM ladda ned de paket som Express krÀver. Paketen för ett Node-projekt Àr alltid listade i filen package.json. Paketen för Express installationen Àr följande.
NPM installerar paket med följande kommando.
npm install skapar en fil som heter package-lock.json, filen innehÄller information om alla paketen som installerats och de paket som de krÀver för att fungera i sin tur. Om install-kommandot kördes utan fel (vid fel stÄr det npm ERR!) sÄ Àr servern redo.
Surfa sedan till localhost:3000. Node-servern Àr startad och kan besökas med vÀrddatorns ip-adress och rÀtt port Àven frÄn andra datorer.
Port 3000 anvÀnds ofta för att komma Ät en utvecklar Node-servern. Detta skiljer sig frÄn HTTP-standardporten som Àr 80.
Nodemon
Nodemon Àr ett paket till Node som underlÀttar utvecklingen av projekt. Det bevakar och lyssnar efter Àndringar i serverns filer. Om filerna sparas (Àndras) sÄ laddas Node om.
Uppdatera package.json.
Starta sedan servern igen.
Eslint
Visual Studio Code (vscode) kan anvÀndas tillsammans med en sÄ kallad linter för att hitta fel och formatera kod. Eslint Àr en linter för Javascript. Det Àr vÀldigt praktiskt vid arbete med kod och hjÀlper dig som utvecklare att följa praxis och skapa kod av hög kvalité. För att kunna köra Eslint kan det behöva installeras globalt, det gör vi med -g parametern.
För att slutföra installationen av Eslint sÄ behöver en konfigurationsfil skapas. Var noga med att vara i projektmappen nÀr du kör kommandot.
Svara följande:
NPM kommer sedan att frÄga om paketen ska installeras, vÀlj ja.
I projektets root har Eslint skapat en fil som heter .eslintrc.js med instÀllningarna. Mer information kring Javascript standard style hittar du pÄ Standardjs.
Eslintrc kan nu redigeras för att Àndra instÀllningarna. För att till exempel Àndra formateringsregler sÄ finns de under rules. En sÄdan regel kan vara att visa fel nÀr semi-kolon saknas.
Till sist sÄ behöver du installera eslint extension (svenska tillÀgg) i Vscode. Extensions finns i sidomenyn.
Sök efter eslint och installera följande tillÀgg.
LÀr kÀnna din app
Applikationens grunder Àr nu installerade tillsammans med ett par verktyg för att underlÀtta utvecklingen. NÀsta steg Àr att titta pÄ Express filstruktur och hur du arbetar med det. Filstrukturen i Express ser ut sÄhÀr efter installationen.
I roten finns app.js och package.json samt en del andra konfigurationsfiler. App.js Àr Node-serverns startpunkt. Detta föregÄs av att start-scriptet i package.json utgÄr frÄn filen www, i bin mappen, som i sin tur ladda app.js.
App.js laddar in serverns routes frÄn routes/ foldern. NÀr en route laddas efter ett anrop till servern sÄ viser de i sin tur HTML-templaten frÄn views/ mappen. Statiska filer finns i public/ mappen, sÄsom css och bilder.
Routes
En route Àr den vÀg en request tar i din applikation. AnvÀndaren efterfrÄgar en resurs och i routen sÄ bestÀmmer du vad som ska ske dÄ.
Routerna som skapas av Express generator Àr index och users. Index hanterar anrop till / och users till /users. Applikationens router laddas och kopplas till en adress i app.js.
Routerna innehÄller i sin tur koden för att hantera anropen. Detta system skapar struktur för koden. Koden för index-routen ser ut sÄhÀr, pÄ Git.
En view laddas med ett sÄ kallat middleware i app.js. Det sÀtter en path till views-mappen och bestÀmmer vilken templatmotor som ska anvÀndas. Det finns ett stort antal middleware med olika funktioner och det Àr en viktig del av Express. Enkelt sagt sÄ Àr middleware insticksprogram som utökar Express funktion.
En egen route
För att skapa en route sÄ kan vi redigera filen index.js i routes mappen. Kopiera GET routen för / och klistra in den efter den existerande routen. Routen vi skapar Àr för en GET request till /test och den svarar med text.
En till route
Routen ovan finns i index.js filen och Àr kopplad till / och /test. Prova nu att skapa en test router. Kopiera routes/index.js och döp om den till test.js.
Routen behöver sedan kopplas i app.js filen för att den ska kunna anvÀndas.
Prova sedan att surfa till http://localhost:3000/test, visas din nya route? Annars sÄ behöver du felsöka detta. Har du kvar en /test route i index.js?
Last updated
Was this helpful?