Node.js Express FrameWork Tutorial – Lær på 10 minutter
I denne tutorial vil vi studere Express-rammen. Denne ramme er bygget på en sådan måde, at den fungerer som en minimal og fleksibel Node.js webapplikationsramme, der giver et robust sæt funktioner til opbygning af enkelt- og flersidet og hybrid webapplikation.
Hvad er Express.js?
Express.js er et Node js-webapplikationsserverframework, som er specifikt designet til at bygge enkeltsidede, flersidede og hybride webapplikationer.
Det er blevet standard serverframework for node.js. Express er backend-delen af noget kendt som MEAN-stakken.
MEAN er en gratis og open source JavaScript Softwarestak til opbygning af dynamiske websteder og webapplikationer, som har følgende komponenter;
1) MongoDB – Standard NoSQL-databasen
2) Express.js – Standard webapplikationsramme
3) Angular.js - Den JavaScript MVC-ramme, der bruges til webapplikationer
4) node.js – Framework, der bruges til skalerbare server-side- og netværksapplikationer.
Express.js-rammen gør det meget nemt at udvikle en applikation, som kan bruges til at håndtere flere typer anmodninger som GET, PUT og POST og DELETE-anmodninger.
Installation og brug af Express
Express bliver installeret via Node Package Manager. Dette kan gøres ved at udføre følgende linje i kommandolinjen
npm install Express
Ovenstående kommando anmoder Node-pakkeadministratoren om at downloade de nødvendige ekspresmoduler og installere dem i overensstemmelse hermed.
Lad os bruge vores nyligt installerede Express-ramme og skabe en simpel "Hello World"-applikation.
Vores applikation vil skabe et simpelt servermodul, som vil lytte på portnummer 3000. I vores eksempel, hvis en anmodning foretages gennem browseren på dette portnummer, vil serverapplikationen sende et 'Hello' World'-svar til klienten .
var express=require('express'); var app=express(); app.get('/',function(req,res) { res.send('Hello World!'); }); var server=app.listen(3000,function() {});
Kodeforklaring:
- I vores første kodelinje bruger vi kræve-funktionen til at inkludere "ekspressmodulet."
- Før vi kan begynde at bruge ekspresmodulet, skal vi lave et objekt af det.
- Her laver vi en tilbagekaldsfunktion. Denne funktion vil blive kaldt, når nogen browser til roden af vores webapplikation, dvs http://localhost:3000 . Tilbagekaldsfunktionen vil blive brugt til at sende strengen 'Hello World' til websiden.
- I tilbagekaldsfunktionen sender vi strengen "Hello World" tilbage til klienten. Parameteren 'res' bruges til at sende indhold tilbage til websiden. Denne 'res'-parameter er noget, der leveres af 'request'-modulet for at gøre det muligt for en at sende indhold tilbage til websiden.
- Vi bruger derefter lyt til-funktionen til at få vores serverapplikation til at lytte til klientforespørgsler på port nr. 3000. Du kan angive enhver tilgængelig port herovre.
Hvis kommandoen udføres med succes, vil følgende output blive vist, når du kører din kode i browseren.
Output:
Fra udgangen,
- Du kan tydeligt se, at hvis du gennemser URL'en for localhost på port 3000, vil du se strengen 'Hello World' på siden.
- Fordi vi i vores kode har nævnt specifikt, at serveren skal lytte på port nr. 3000, er vi i stand til at se outputtet, når vi browser til denne URL.
Hvad er ruter?
Routing bestemmer den måde, hvorpå en applikation reagerer på en klientanmodning til et bestemt slutpunkt.
For eksempel kan en klient lave en GET, POST, PUT eller DELETE http-anmodning for forskellige URL'er, såsom dem vist nedenfor;
http://localhost:3000/Books http://localhost:3000/Students
I ovenstående eksempel
- Hvis der foretages en GET-anmodning for den første URL, skal svaret ideelt set være en liste over bøger.
- Hvis GET-anmodningen er lavet for den anden URL, skal svaret ideelt set være en liste over studerende.
- Så baseret på den URL, der tilgås, vil en anden funktionalitet på webserveren blive aktiveret, og svaret vil derfor blive sendt til klienten. Dette er begrebet routing.
Hver rute kan have en eller flere handlerfunktioner, som udføres, når ruten matches.
Den generelle syntaks for en rute er vist nedenfor
app.METHOD(PATH, HANDLER)
hvori,
1) app er en forekomst af ekspresmodulet
2) METODE er en HTTP-anmodningsmetode (GET, POST, PUT eller DELETE)
3) PATH er en sti på serveren.
4) HANDLER er den funktion, der udføres, når ruten matches.
Lad os se på et eksempel på, hvordan vi kan implementere ruter i ekspresen. Vores eksempel vil skabe 3 ruter som
- En /Node-rute, som viser strengen "Tutorial on Node", hvis denne rute er tilgået
- En /Angular rute, som vil vise strengen "Tutorial on Angular", hvis denne rute er tilgået
- En standardrute / som vil vise strengen "Velkommen til Guru99 Tutorials."
Vores grundlæggende kode vil forblive den samme som tidligere eksempler. Nedenstående uddrag er en tilføjelse til at vise, hvordan routing implementeres.
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'); }));
Kodeforklaring:
- Her definerer vi en rute, hvis URL'en http://localhost:3000/Node er valgt i browseren. Til ruten knytter vi en tilbagekaldsfunktion, som vil blive kaldt, når vi browser til Node URL. Funktionen har 2 parametre.
- Hovedparameteren vi vil bruge er 'res' parameteren, som kan bruges til at sende information tilbage til klienten.
- Parameteren 'req' har information om den anmodning, der foretages. Nogle gange kan yderligere parametre sendes som en del af anmodningen, der foretages, og derfor kan 'req'-parameteren bruges til at finde de yderligere parametre, der sendes.
- Vi bruger sendefunktionen til at sende strengen "Tutorial on Node" tilbage til klienten, hvis noderuten er valgt.
- Her definerer vi en rute, hvis URL'en http://localhost:3000/Angular er valgt i browseren. Til ruten knytter vi en tilbagekaldsfunktion, som vil blive kaldt, når vi browser til Angular URL.
- Vi bruger sendefunktionen til at sende strengen "Tutorial on Angular" tilbage til klienten, hvis Angular-ruten er valgt.
- Dette er standardruten, som vælges, når man browser til applikationens rute – http://localhost:3000. Når standardruten er valgt, vil meddelelsen "Velkommen til Guru99 Tutorials" blive sendt til klienten.
Hvis kommandoen udføres med succes, vil følgende output blive vist, når du kører din kode i browseren.
Output:
Fra udgangen,
- Du kan tydeligt se, at hvis du gennemser URL'en for localhost på port 3000, vil du se strengen 'Velkommen til Guru99 Tutorials' vist på siden.
- For i vores kode har vi nævnt, at vores standard-URL ville vise denne besked.
Fra udgangen,
- Du kan se, at hvis URL'en er blevet ændret til /Node, vil den respektive Node-rute blive valgt, og strengen "Tutorial On Node" vises.
Fra udgangen,
- Du kan se, at hvis URL'en er blevet ændret til /Angular, vil den respektive noderute blive valgt, og strengen "Tutorial On Angular" vises.
Eksempel på webserver ved hjælp af express.js
Fra vores ovenstående eksempel har vi set, hvordan vi kan beslutte, hvilket output der skal vises baseret på routing. Denne form for routing er det, der bruges i de fleste moderne webapplikationer. Den anden del af en webserver handler om at bruge skabeloner i Node js.
Når du opretter hurtige Node-applikationer, er en nem og hurtig måde at bruge skabeloner til applikationen. Der er mange rammer tilgængelige på markedet til at lave skabeloner. I vores tilfælde vil vi tage eksemplet med jade-rammen til skabelon.
Jade bliver installeret via Node Package manager. Dette kan gøres ved at udføre følgende linje i kommandolinjen
npm installer jade
Ovenstående kommando anmoder Node-pakkeadministratoren om at downloade de nødvendige jade-moduler og installere dem i overensstemmelse hermed.
BEMÆRK VENLIGST: I den seneste version af Node er jade blevet forældet. Brug i stedet pug.
Lad os bruge vores nyinstallerede jade-ramme og skabe nogle grundlæggende skabeloner.
Trin 1) Det første trin er at oprette en jade skabelon. Opret en fil kaldet index.jade og indsæt nedenstående kode. Sørg for at oprette filen i mappen "visninger".
- Her specificerer vi, at titlen på siden vil blive ændret til den værdi, der sendes, når denne skabelon bliver kaldt.
- Vi specificerer også, at teksten i header-tagget vil blive erstattet til det, der sendes i jade-skabelonen.
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() {});
Kodeforklaring:
- Den første ting, der skal specificeres i applikationen, er "view engine", der vil blive brugt til at gengive skabelonerne. Da vi skal bruge jade til at gengive vores skabeloner, specificerer vi dette i overensstemmelse hermed.
- Gengivelsesfunktionen bruges til at gengive en webside. I vores eksempel gengiver vi skabelonen (index.jade), som blev oprettet tidligere.
- Vi overfører værdierne for "Guru99" og "Velkommen" til henholdsvis parametrene "titel" og "besked". Disse værdier vil blive erstattet af parametrene 'title' og 'message', der er angivet i index.jade-skabelonen.
Hvis kommandoen udføres med succes, vil følgende output blive vist, når du kører din kode i browseren.
Output:
Fra udgangen,
- Vi kan se, at titlen på siden bliver indstillet til "Guru99", og sidehovedet bliver indstillet til "Velkommen."
- Dette er på grund af jade-skabelonen, som bliver påberåbt i vores node js-applikation.
Resumé
- Express-rammen er den mest almindelige ramme, der bruges til at udvikle Node js-applikationer. Express-rammeværket er bygget oven på node.js-rammeværket og hjælper med hurtig-tracking af udvikling af serverbaserede applikationer.
- Ruter bruges til at omdirigere brugere til forskellige dele af webapplikationerne baseret på anmodningen. Responsen for hver rute kan varieres afhængigt af, hvad der skal vises til brugeren.
- Skabeloner kan bruges til at injicere indhold på en effektiv måde. Jade er en af de mest populære skabelonmotorer, der bruges i Node.js-applikationer.