I denna handledning studerar vi Express-ramverket. Detta ramverk är uppbyggt på ett sådant sätt att det fungerar som ett minimalt och flexibelt Node.js-webbapplikationsramverk, vilket ger en robust uppsättning funktioner för att bygga enkel- och flersidiga och hybrid webbapplikationer.
I den här handledningen lär du dig-
- Vad är Express.js?
- Installera och använda Express
- Vad är rutter?
- Exempel på webbserver med express.js
Vad är Express.js?
Express.js är ett Node js-ramverk för webbapplikationsserver, som är specifikt utformat för att bygga enkelsidiga, flersidiga och hybridwebapplikationer.
Det har blivit standardserverramen för node.js. Express är backend-delen av något som kallas MEAN-stacken.
MEAN är en fri och öppen källkod JavaScript-programvarustack för att bygga dynamiska webbplatser och webbapplikationer som har följande komponenter;
1) MongoDB - Standard NoSQL-databasen
2) Express.js - Standardramen för webbapplikationer
3) Angular.js - JavaScript MVC-ramverk som används för webbapplikationer
4) Node.js - Framework som används för skalbar server-sida och nätverksapplikationer.
Express.js-ramverket gör det mycket enkelt att utveckla en applikation som kan användas för att hantera flera typer av förfrågningar som GET, PUT, och POST och DELETE-förfrågningar.
Installera och använda Express
Express installeras via Node Package Manager. Detta kan göras genom att köra följande rad i kommandoraden
npm installera express
Ovanstående kommando ber Node-pakethanteraren att ladda ner de erforderliga expressmodulerna och installera dem därefter.
Låt oss använda vårt nyligen installerade Express-ramverk och skapa en enkel "Hello World" -applikation.
Vår applikation kommer att skapa en enkel servermodul som kommer att lyssna på portnummer 3000. I vårt exempel, om en begäran görs via webbläsaren om detta portnummer, kommer serverapplikationen att skicka ett 'Hello' World 'svar till klienten .
var express=require('express');var app=express();app.get('/',function(req,res){res.send('Hello World!');});var server=app.listen(3000,function() {});
Kodförklaring:
- I vår första kodrad använder vi funktionen för att inkludera "expressmodulen".
- Innan vi kan börja använda expressmodulen måste vi göra ett objekt av den.
- Här skapar vi en återuppringningsfunktion. Denna funktion kommer att anropas när någon bläddrar till roten till vår webbapplikation som är http: // localhost: 3000 . Återuppringningsfunktionen kommer att användas för att skicka strängen 'Hello World' till webbsidan.
- I återuppringningsfunktionen skickar vi tillbaka strängen "Hello World" till klienten. Parametern 'res' används för att skicka innehåll tillbaka till webbsidan. Denna "res" -parameter är något som tillhandahålls av "begäran" -modulen för att göra det möjligt för en att skicka innehåll tillbaka till webbsidan.
- Vi använder sedan lyssna till-funktionen för att få vår serverapplikation att lyssna på klientförfrågningar på port nr 3000. Du kan ange vilken som helst tillgänglig port här.
Om kommandot utförs framgångsrikt visas följande utdata när du kör din kod i webbläsaren.
Produktion:
Från produktionen,
- Du kan tydligt se att om vi bläddrar till URL för localhost på port 3000, kommer du att se strängen 'Hello World' visas på sidan.
- Eftersom vi i vår kod har nämnt specifikt för servern att lyssna på port nr 3000, kan vi se utdata när vi bläddrar till denna URL.
Vad är rutter?
Routing bestämmer hur ett program svarar på en klientförfrågan till en viss slutpunkt.
Till exempel kan en klient göra en GET-, POST-, PUT- eller DELETE http-begäran om olika webbadresser som de som visas nedan;
http://localhost:3000/Bookshttp://localhost:3000/Students
I exemplet ovan,
- Om en GET-begäran görs för den första URL: en, bör svaret helst vara en lista med böcker.
- Om GET-begäran görs för den andra URL: en, bör svaret helst vara en lista över studenter.
- Så baserat på webbadressen som nås kommer en annan funktionalitet på webbservern att åberopas, och följaktligen kommer svaret att skickas till klienten. Detta är konceptet routing.
Varje rutt kan ha en eller flera hanteringsfunktioner, som körs när rutten matchas.
Den allmänna syntaxen för en rutt visas nedan
app.METHOD(PATH, HANDLER)
Vart i,
1) app är en instans av expressmodulen
2) METOD är en HTTP-förfrågningsmetod (GET, POST, PUT eller DELETE)
3) PATH är en sökväg på servern.
4) HANDLER är den funktion som utförs när rutten matchas.
Låt oss titta på ett exempel på hur vi kan implementera rutter i express. Vårt exempel kommer att skapa tre rutter som
- A / Node-rutt som visar strängen "Tutorial on Node" om den här rutten nås
- A / Angular route som visar strängen "Tutorial on Angular" om denna rutt nås
- En standardrutt / som visar strängen "Välkommen till Guru99-handledning."
Vår grundkod förblir densamma som tidigare exempel. Nedanstående utdrag är ett tillägg för att visa hur routing implementeras.
var express = require('express');var app = express();app.route('/Node').get(function(req,res){res.send("Tutorial on Node");});app.route('/Angular').get(function(req,res){res.send("Tutorial on Angular");});app.get('/',function(req,res){res.send('Welcome to Guru99 Tutorials');}));
Kodförklaring:
- Här definierar vi en rutt om URL: n http: // localhost: 3000 / Node väljs i webbläsaren. Till rutten bifogar vi en återuppringningsfunktion som kommer att anropas när vi bläddrar till nod-URL.
Funktionen har två parametrar.
- Huvudparametern vi kommer att använda är parametern 'res', som kan användas för att skicka information tillbaka till klienten.
- Parametern 'req' har information om begäran som görs. Ibland kan ytterligare parametrar skickas som en del av begäran som görs, och därför kan parametern 'req' användas för att hitta de ytterligare parametrar som skickas.
- Vi använder sändningsfunktionen för att skicka strängen "Tutorial on Node" tillbaka till klienten om nodrutten väljs.
- Här definierar vi en rutt om webbadressen http: // localhost: 3000 / Angular är markerad i webbläsaren. Till rutten bifogar vi en återuppringningsfunktion som kommer att anropas när vi bläddrar till Angular URL.
- Vi använder sändningsfunktionen för att skicka strängen "Tutorial on Angular" tillbaka till klienten om vinkelrutten väljs.
- Detta är standardvägen som väljs när man bläddrar till applikationsvägen - http: // localhost: 3000 . När standardvägen väljs kommer meddelandet "Välkommen till Guru99-handledning" att skickas till klienten.
Om kommandot utförs framgångsrikt visas följande utdata när du kör din kod i webbläsaren.
Produktion:
Från produktionen,
- Du kan tydligt se att om vi bläddrar till URL-adressen till localhost på port 3000, kommer du att se strängen 'Välkommen till Guru99 Tutorials' visas på sidan.
- För i vår kod har vi nämnt att vår standard-URL skulle visa detta meddelande.
Från produktionen,
- Du kan se att om URL: n har ändrats till / Node skulle respektive nodrutt väljas och strängen "Tutorial On Node" visas.
Från produktionen,
- Du kan se att om URL: n har ändrats till / Angular skulle respektive nodrutt väljas och strängen "Tutorial On Angular" visas.
Exempel på webbserver med express.js
Från vårt ovanstående exempel har vi sett hur vi kan bestämma vilken output som ska visas baserat på routing. Denna typ av dirigering är det som används i de flesta moderna webbapplikationer. Den andra delen av en webbserver handlar om att använda mallar i Node js.
När du skapar snabba on-the-fly nodapplikationer är ett enkelt och snabbt sätt att använda mallar för applikationen. Det finns många ramar tillgängliga på marknaden för att skapa mallar. I vårt fall tar vi exemplet med jade-ramverket för mallar.
Jade installeras via Node Package Manager. Detta kan göras genom att köra följande rad i kommandoraden
npm installera jade
Ovanstående kommando ber Node-pakethanteraren att ladda ner de nödvändiga jademodulerna och installera dem därefter.
OBS: I den senaste versionen av Node jade har utfasats. Använd istället mops.
Låt oss använda vårt nyligen installerade jade-ramverk och skapa några grundläggande mallar.
Steg 1) Det första steget är att skapa en jademall. Skapa en fil som heter index.jade och sätt in koden nedan. Se till att skapa filen i "vyer" -mappen
- Här specificerar vi att sidans titel kommer att ändras till vilket värde som helst som skickas när den här mallen åberopas.
- Vi specificerar också att texten i rubriktaggen kommer att ersättas till vad som helst som skickas i jademallen.
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){res.render('index',{title:'Guru99',message:'Welcome'})});var server=app.listen(3000,function() {});
Kodförklaring:
- Det första du ska specificera i applikationen är "view engine" som kommer att användas för att rendera mallarna. Eftersom vi ska använda jade för att rendera våra mallar, specificerar vi detta i enlighet med detta.
- Renderfunktionen används för att återge en webbsida. I vårt exempel återger vi mallen (index.jade) som skapades tidigare.
- Vi skickar värdena "Guru99" och "Welcome" till parametrarna "title" respektive "message". Dessa värden kommer att ersättas med parametrarna 'title' och 'message' som deklareras i index.jade-mallen.
Om kommandot utförs framgångsrikt visas följande utdata när du kör din kod i webbläsaren.
Produktion:
Från produktionen,
- Vi kan se att titeln på sidan blir inställd på "Guru99" och sidhuvudet blir inställd på "Välkommen".
- Detta beror på jademallen som anropas i vår nod js-applikation.
Sammanfattning
- Expressramverket är det vanligaste ramverket som används för att utveckla Node js-applikationer. Expressramverket är byggt ovanpå node.js-ramverket och hjälper till att snabbt spåra utvecklingen av serverbaserade applikationer.
- Rutter används för att avleda användare till olika delar av webbapplikationerna baserat på begäran. Svaret för varje rutt kan varieras beroende på vad som behöver visas för användaren.
- Mallar kan användas för att injicera innehåll på ett effektivt sätt. Jade är en av de mest populära mallmotorerna som används i Node.js-applikationer.