Node.js Express.js FrameWork-handledning

⚡ Smart sammanfattning

Express.js är ett minimalistiskt Node.js-ramverk för webbapplikationer som lägger till routing, mellanprogramvara och mallrendering till den centrala HTTP-modulen, så att ensidiga, flersidiga och hybridapplikationer når en fungerande server på väldigt få rader.

  • 🔘 MEAN-stackroll: Express.js levererar backend-lagret bredvid MongoDB, AngularJS och Node.js.
  • ☑️ Installation: npm install express hämtar ramverket från Node Package Manager.
  • ✅ routing: app.METHOD(PATH, HANDLER) mappar varje URL och HTTP-verb till en hanterare.
  • 🧪 mallar: app.set('view engine') plus res.render matar in data i en view-fil.
  • 🛠️ Modern form: Express 5 accepterar promise-returning handlers och bundlar express.json().
  • 📊 Versionsnotering: Jade döptes om till Pug, och Node.js 24 är den aktiva LTS-linjen.

Handledning för Node.js Express.js-ramverket

I den här handledningen ska vi studera Express-ramverket. Ramverket är byggt på ett sådant sätt att det fungerar som ett minimalistiskt och flexibelt Node.js-webbapplikationsramverk, vilket ger en robust uppsättning funktioner för att bygga ensidiga, flersidiga och hybrida webbapplikationer.

Vad är Express.js?

Express.js är ett Node.js webbapplikationsserverramverk, som är specifikt utformat för att bygga ensidiga, flersidiga och hybrida webbapplikationer.

Det har blivit standardserverramverket för Node.js. Express är backend-delen av något som kallas MEAN-stacken.

Expresslagers routning och mellanprogramvara över kärnan av Node.js HTTP, strömmar och händelse-API:er.

MEAN är en gratis och öppen källkod JavaScript mjukvarustack för att bygga dynamiska webbplatser och webbapplikationer som har följande komponenter;

1) MongoDB — Standard NoSQL-databasen

2) Express.js — Standardramverket för webbapplikationer

3) AngularJS - The JavaSkript MVC-ramverk som används för webbapplikationer

4) node.js — Ramverk som används för skalbara server- 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 utföra följande rad på kommandoraden

npm installera express

Ovanstående kommando begär att Node Package Manager laddar ner den nödvändiga expressfilen. moduler och installera dem därefter.

Versionsnotering: npm installerar nu Express 5.2; många projekt fäster fortfarande Express 4. Båda kör exemplen nedan på en stödd Node.js-version.

Låt oss använda vårt nyinstallerade Express-ramverk och skapa en enkel "Hello World"-applikation.

Vår applikation kommer att skapa en enkel servermodul som lyssnar på portnummer 3000. I vårt exempel, om en begäran görs via webbläsaren på detta portnummer, skickar serverapplikationen ett "Hej världen"-svar till klienten.

Annoterad Express Hello World-serverkod som lyssnar på port 3000

var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
var server=app.listen(3000,function() {});

Code Förklaring:

  1. I vår första kodrad använder vi funktionen require för att inkludera "expressmodulen."
  2. Innan vi kan börja använda expressmodulen måste vi göra ett objekt av den.
  3. Här skapar vi en callback-funktion. Denna funktion kommer att anropas varje gång någon bläddrar till roten av vår webbapplikation, som är http://localhost:3000. Callback-funktionen kommer att användas för att skicka strängen "Hello World" till webbsidan.
  4. I callback-funktionen 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 modulen 'request' för att göra det möjligt för en att skicka innehåll tillbaka till webbsidan.
  5. Vi använder sedan listen-funktionen för att få vår serverapplikation att lyssna på klientförfrågningar på port nr 3000. Du kan ange vilken tillgänglig port som helst här.

Om kommandot exekveras framgångsrikt kommer följande utdata att visas när du kör din kod i webbläsaren.

Produktion:

Webbläsaren visar Hello World returnerad av Express-servern på port 3000

Från utgången,

  • Det kan du tydligt se om du 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 specifikt har nämnt att servern ska lyssna på port nr 3000, kan vi se utdata när vi bläddrar till detta. URL.

Vad är rutter?

En enda rotväg är bara utgångspunkten.

Routing avgör hur en applikation svarar på en klientförfrågan till en viss slutpunkt.

Till exempel kan en klient göra en GET-, POST-, PUT- eller DELETE http-förfrågan för olika URL såsom de som visas nedan;

http://localhost:3000/Books
http://localhost:3000/Students

I exemplet ovan,

  • Om en GET-begäran görs för den första URL, då bör svaret helst vara en lista med böcker.
  • Om GET-begäran görs för den andra URL, då bör svaret helst vara en lista över studenter.
  • Så baserat på URL som nås, kommer en annan funktion på webbservern att anropas, och svaret skickas därefter till klienten. Detta är konceptet routing.

Varje rutt kan ha en eller flera hanterarfunktioner, som exekveras när rutten matchas.

Den allmänna syntaxen för en rutt visas nedan

app.METHOD(PATH, HANDLER)

Vart i,

1) appen ä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 exekveras när rutten matchas.

Ring upp FÖRFRÅGAN Syfte
app.get(SÖKVÄG, HANTERARE) FÅ Läsa
app.post(SÖKVÄG, HANDLER) POST Skapa
app.put(SÖKVÄG, HANDLER) SÄTTA ersätta
app.delete(SÖKVÄG, HANDLER) RADERA ta bort
app.route(PATH) Kett Grupphanterare
app.use(HANDLER) Vilken som helst Montera mellanprogramvara

⚠️ Express 5 anteckningar: Dessa signaturer är oförändrade, men app.del() blev app.delete(), res.sendfile() blev res.sendFile(), och jokertecken behöver nu namn som /*splat.

Låt oss titta på ett exempel på hur vi kan implementera rutter i Express. Vårt exempel skapar 3 rutter som

  1. En /Node-rutt som kommer att visa strängen "Tutorial on Node" om denna rutt används
  2. En /Angular rutt som kommer att visa strängen "Tutorial on Angular" om denna rutt nås
  3. En standardrutt / som visar strängen "Välkommen till Guru99 handledningar.

Vår grundläggande kod kommer att förbli densamma som tidigare exempel. Nedanstående utdrag är ett tillägg för att visa hur routing implementeras.

Annoterad Express-routingkod som definierar Node-, Angular- och standardrutter

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');
});

Code Förklaring:

  1. Här definierar vi en rutt om URL http://localhost:3000/Node is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Node URLFunktionen har 2 parametrar.
    • Huvudparametern vi kommer att använda är parametern 'res', som kan användas för att skicka tillbaka information 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 parametrarna som skickas.
  2. Vi använder sändfunktionen för att skicka tillbaka strängen "Tutorial on Node" till klienten om nodvägen väljs.
  3. Här definierar vi en rutt om URL http://localhost:3000/Angular is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Angular URL.
  4. Vi använder skickafunktionen för att skicka tillbaka strängen "Tutorial on Angular" till klienten om Angular-rutten väljs.
  5. Detta är standardrutten som väljs när man bläddrar till programmets rot — http://localhost:3000. När standardrutten är vald visas meddelandet ”Välkommen till Guru99 handledningar” kommer att skickas till klienten.

Om kommandot exekveras framgångsrikt kommer följande utdata att visas när du kör din kod i webbläsaren.

Produktion:

Webbläsaren visar Välkommen till Guru99 handledningar på standardrutten Express

Från utgången,

  • Det kan du tydligt se om du bläddrar till URL av localhost på port 3000, kommer du att se strängen 'Välkommen till Guru99 handledningar visas på sidan.
  • Eftersom vi i vår kod har nämnt att vår standard URL skulle visa detta meddelande.

Bläddra sedan till /Node.

Webbläsare som visar handledning om nod som returneras av nodrutten

Från utgången,

  • Du kan se att om URL har ändrats till /Node, skulle respektive nodrutt väljas och strängen "Handledning om nod" visas.

Bläddra sedan till /Angular.

Webbläsare som visar handledning om Angular som returneras av Angular-rutten

Från utgången,

  • Du kan se att om URL har ändrats till /Angular, skulle respektive nodrutt väljas och strängen "Handledning om Angular" visas.

Exempel på webbserver med express.js

Från exemplet ovan har vi sett hur vi kan bestämma vilken utdata som ska visas baserat på routing. Den här typen av routing används i de flesta moderna webbapplikationer. Den andra delen av en webbserver handlar om att använda mallar i Node.js.

När man skapar snabba Node.js-applikationer direkt på datorn är ett enkelt och snabbt sätt att använda mallar för applikationen. Det finns många ramverk tillgängliga på marknaden för att skapa mallar. I vårt fall tar vi exemplet med Jade-ramverket för mallskapande.

Jade installeras via Node Package Manager. Detta kan göras genom att köra följande rad i kommandoraden.

npm installera jade

Kommandot ovan ber Node Package Manager att ladda ner de nödvändiga Jade-modulerna och installera dem därefter.

OBS: I den senaste versionen av Node har jade fasats ut. Använd istället mops.

⚠️ Modern motsvarighet: installera Mops, byt namn på index.jade till index.pug och sätt app.set('view engine','pug'). Jade-paketet får inga uppdateringar; stegen nedan körs fortfarande.

Låt oss använda vårt nyinstallerade Jade-ramverk och skapa några grundläggande mallar.

Steg 1) Det första steget är att skapa en Jade-mall. Skapa en fil som heter index.jade och infoga koden nedan. Se till att skapa filen i mappen "views".

index.jade mallmarkup med platshållare för titel och rubrik

  1. Här specificerar vi att sidans titel kommer att ändras till vilket värde som än skickas när denna mall anropas.
  2. Vi specificerar också att texten i header-taggen kommer att ersättas med det som skickas i Jade-mallen.

Applikationskoden som renderar den följer.

Annoterad Express-kod som ställer in Jade-vymotorn och renderingsindexet

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() {});

Code Förklaring:

  1. Det första du behöver ange i applikationen är "view engine" som ska 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 därmed.
  2. Renderfunktionen används för att rendera en webbsida. I vårt exempel renderar vi mallen (index.jade) som skapades tidigare.
  3. Vi förmedlar värdena "Guru99” och ”Välkommen” till parametrarna ”title” respektive ”message”. Dessa värden kommer att ersättas av parametrarna 'title' och 'message' som deklarerats i index.jade-mallen.

Om kommandot exekveras framgångsrikt kommer följande utdata att visas när du kör din kod i webbläsaren.

Produktion:

Webbläsarrendering av Jade-mallen med titel Guru99 och rubrik Välkommen

Från utgången,

  • Vi kan se att sidans titel sätts till "Guru99” och sidans rubrik sätts till ”Välkommen”.
  • Detta beror på Jade-mallen som anropas i vår Node.js-applikation.

Vanliga frågor

middle~~POS=TRUNC Funktionerna tar emot req, res och next, och körs sedan i registreringsordning. De hanterar loggning, kroppsparsning, autentisering och fel, och var och en måste avsluta svaret eller anropa next().

Nej. Express buntar ihop parserna, så express.json() och express.urlencoded() ersätter de separata kropp-parser beroende. Den kombinerade bodyParser()-hjälparen togs bort och req.body förblir odefinierad tills en parser körs.

Express 5 gjorde hanterare löftesmedvetna, tog bort app.del() och res.sendfile(), uppgraderade sökvägsmatchning så att jokertecken behöver namn som /*splat, och satte urlencoded extended till false som standard.

På Express 5 skickas ett avvisat löfte automatiskt till den felhanteringsbaserade mellanprogramvaran, så manuella next(err)-anrop försvinner. Express 4 behöver ett explicit try/catch-kommando inom varje asynkron konfiguration. ring tillbaka.

MopsJade har bytt namn av varumärkesskäl och jade-paketet är föråldrat. Befintliga mallar fortsätter att fungera efter att de har bytts namn till .pug och vymotorn har bytts.

Node.js 24 är den aktiva LTS-linjen under 2026 medan Node.js 22 fortfarande är under underhåll, så installera en av dem. Express 5 kräver Node.js 18 eller senare.

Maskininlärningsskannrar läser ruttdefinitioner och mellanprogramvarans ordning och flaggar sedan saknad autentisering, ogiltigförklarad JavaScript inmatning och tillåtande CORS-regler. En mänsklig granskare bekräftar fortfarande alla fynd.

GitHub Copilot och liknande agentassistenter genererar ruttfiler, valideringsmellanprogram och kontrollstubbar från en kort prompt. Varje genererad rutt behöver fortfarande testning före utsläpp.

Sammanfatta detta inlägg med: