Tutorial Node.js Express.js FrameWork

โšก Rezumat inteligent

Express.js este un framework minimalist pentru aplicaศ›ii web Node.js care adaugฤƒ rutare, middleware ศ™i randare de ศ™abloane la modulul HTTP principal, astfel รฎncรขt aplicaศ›iile cu o singurฤƒ paginฤƒ, cu mai multe pagini ศ™i hibride ajung la un server funcศ›ional รฎn foarte puศ›ine linii.

  • ๐Ÿ”˜ Rolul stivei MEAN: Express.js furnizeazฤƒ stratul backend alฤƒturi de MongoDB, AngularJS ศ™i Node.js.
  • โ˜‘๏ธ Instalare: npm install express extrage framework-ul din Node Package Manager.
  • โœ… rutare: app.METHOD(CALE, HANDLER) mapeazฤƒ fiecare URL ศ™i un verb HTTP cฤƒtre un singur handler.
  • ๐Ÿงช Template-uri: app.set('view engine') plus res.render introduce date รฎntr-un fiศ™ier de vizualizare.
  • ๐Ÿ› ๏ธ Formฤƒ modernฤƒ: Express 5 acceptฤƒ rutine de gestionare care returneazฤƒ promisiuni ศ™i include express.json().
  • ๐Ÿ“Š Notฤƒ privind versiunea: Jade a fost redenumit Pug, iar Node.js 24 este linia Active LTS.

Tutorial despre framework-ul Node.js Express.js

รŽn acest tutorial, vom studia framework-ul Express. Acest framework este construit astfel รฎncรขt sฤƒ acศ›ioneze ca un framework de aplicaศ›ii web Node.js minimal ศ™i flexibil, oferind un set robust de caracteristici pentru construirea de aplicaศ›ii web cu o singurฤƒ paginฤƒ, cu mai multe pagini ศ™i hibride.

Ce este Express.js?

Express.js este un framework de server pentru aplicaศ›ii web Node.js, special conceput pentru construirea de aplicaศ›ii web cu o singurฤƒ paginฤƒ, cu mai multe pagini ศ™i hibride.

A devenit framework-ul standard de server pentru Node.js. Express este partea backend a ceea ce se numeศ™te stiva MEAN.

Rutare ศ™i middleware pentru straturi expres prin HTTP-ul Node.js de bazฤƒ, fluxuri ศ™i API-uri pentru evenimente.

MEAN este un program gratuit ศ™i open-source JavaScenariu stivฤƒ de software pentru construirea de site-uri web dinamice ศ™i aplicaศ›ii web care are urmฤƒtoarele componente;

1) MongoDB โ€” Baza de date NoSQL standardฤƒ

2) Express.js โ€” Framework-ul implicit pentru aplicaศ›ii web

3) AngularJS - The JavaCadrul de script MVC utilizat pentru aplicaศ›ii web

4) Node.js โ€” Cadru de lucru utilizat pentru aplicaศ›ii scalabile pe server ศ™i รฎn reศ›ea.

Cadrul Express.js faciliteazฤƒ dezvoltarea unei aplicaศ›ii care poate fi utilizatฤƒ pentru a gestiona mai multe tipuri de solicitฤƒri, cum ar fi cererile GET, PUT ศ™i POST ศ™i DELETE.

Instalarea ศ™i utilizarea Express

Express este instalat prin Node Package Manager. Acest lucru se poate face executรขnd urmฤƒtoarea linie รฎn linia de comandฤƒ

npm install express

Comanda de mai sus solicitฤƒ Node Package Manager sฤƒ descarce fiศ™ierul expres necesar module ศ™i instalaศ›i-le รฎn consecinศ›ฤƒ.

Notฤƒ privind versiunea: npm instaleazฤƒ acum Express 5.2; multe proiecte รฎncฤƒ utilizeazฤƒ Express 4. Ambele ruleazฤƒ exemplele de mai jos pe un versiunea Node.js acceptatฤƒ.

Sฤƒ folosim cadrul Express nou instalat ศ™i sฤƒ creฤƒm o aplicaศ›ie simplฤƒ โ€žHello Worldโ€.

Aplicaศ›ia noastrฤƒ va crea un simplu modul server care va asculta pe portul numฤƒrul 3000. รŽn exemplul nostru, dacฤƒ o solicitare este fฤƒcutฤƒ prin browser pe acest numฤƒr de port, atunci aplicaศ›ia server va trimite un rฤƒspuns โ€žSalut, lumeโ€ cฤƒtre client.

Codul serverului Express Hello World adnotat ascultฤƒ pe portul 3000

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

Code Explicaลฃie:

  1. รŽn prima noastrฤƒ linie de cod, folosim funcศ›ia require pentru a include โ€žmodulul expresโ€.
  2. รŽnainte de a รฎncepe sฤƒ folosim modulul expres, trebuie sฤƒ facem un obiect din acesta.
  3. Aici creฤƒm o funcศ›ie de apel invers. Aceastฤƒ funcศ›ie va fi apelatฤƒ de fiecare datฤƒ cรขnd cineva navigheazฤƒ la rฤƒdฤƒcina aplicaศ›iei noastre web, care este http://localhost:3000. Funcศ›ia de apel invers va fi utilizatฤƒ pentru a trimite ศ™irul de caractere โ€žHello Worldโ€ cฤƒtre pagina web.
  4. รŽn funcศ›ia de apel invers, trimitem ศ™irul โ€žHello Worldโ€ รฎnapoi cฤƒtre client. Parametrul โ€žresโ€ este folosit pentru a trimite conศ›inut รฎnapoi pe pagina web. Acest parametru โ€žresโ€ este furnizat de modulul โ€žcerereโ€ pentru a permite unuia sฤƒ trimitฤƒ conศ›inut รฎnapoi pe pagina web.
  5. Apoi folosim funcศ›ia listen pentru a face aplicaศ›ia serverului nostru sฤƒ asculte cererile clienศ›ilor pe portul nr. 3000. Puteศ›i specifica orice port disponibil aici.

Dacฤƒ comanda este executatฤƒ cu succes, urmฤƒtoarea ieศ™ire va fi afiศ™atฤƒ atunci cรขnd rulaศ›i codul รฎn browser.

ieศ™ire:

Browser care afiศ™eazฤƒ mesajul โ€žHello Worldโ€ returnat de serverul Express pe portul 3000

Din ieศ™ire,

  • Puteศ›i vedea clar cฤƒ dacฤƒ navigaศ›i la URL al localhost pe portul 3000, veศ›i vedea ศ™irul โ€žHello Worldโ€ afiศ™at pe paginฤƒ.
  • Deoarece รฎn codul nostru am menศ›ionat รฎn mod specific ca serverul sฤƒ asculte pe portul nr. 3000, putem vizualiza rezultatul atunci cรขnd navigฤƒm cฤƒtre acesta. URL.

Ce sunt traseele?

O singurฤƒ rutฤƒ rฤƒdฤƒcinฤƒ este doar punctul de plecare.

Rutarea determinฤƒ modul รฎn care o aplicaศ›ie rฤƒspunde la o solicitare a clientului cฤƒtre un anumit endpoint.

De exemplu, un client poate face o cerere http GET, POST, PUT sau DELETE pentru diverse URL cum ar fi cele prezentate mai jos;

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

รŽn exemplul de mai sus,

  • Dacฤƒ se face o cerere GET pentru prima datฤƒ URL, atunci rฤƒspunsul ar trebui, รฎn mod ideal, sฤƒ fie o listฤƒ de cฤƒrศ›i.
  • Dacฤƒ cererea GET este fฤƒcutฤƒ pentru a doua URL, atunci rฤƒspunsul ar trebui sฤƒ fie รฎn mod ideal o listฤƒ de Studenศ›i.
  • Deci, pe baza URL care este accesatฤƒ, va fi invocatฤƒ o funcศ›ionalitate diferitฤƒ pe serverul web ศ™i, รฎn consecinศ›ฤƒ, rฤƒspunsul va fi trimis clientului. Acesta este conceptul de rutare.

Fiecare rutฤƒ poate avea una sau mai multe funcศ›ii de gestionare, care sunt executate atunci cรขnd ruta este potrivitฤƒ.

Sintaxa generalฤƒ pentru o rutฤƒ este prezentatฤƒ mai jos

app.METHOD(PATH, HANDLER)

รฎn care,

1) aplicaศ›ia este o instanศ›ฤƒ a modulului expres

2) METHOD este o metodฤƒ de solicitare HTTP (GET, POST, PUT sau DELETE)

3) PATH este o cale pe server.

4) HANDLER este funcศ›ia executatฤƒ atunci cรขnd ruta este potrivitฤƒ.

Apel Cerere Scop
aplicaศ›ie.get(CALE, HANDLER) GET Citiศ›i
aplicaศ›ie.post(CALE, HANDLER) POST Creazฤƒ
aplicaศ›ie.put(CALE, HANDLER) PUT รŽnlocui
app.delete(CALE, HANDLER) DELETE Eliminฤƒ
aplicaศ›ie.rutฤƒ(CALE) รŽnlฤƒnศ›uit Gestionari de grup
aplicaศ›ie.use(TRASPORT) Orice Mount middleware

โš ๏ธ express 5 Note: Aceste semnฤƒturi rฤƒmรขn neschimbate, dar app.del() a devenit app.delete(), res.sendfile() a devenit res.sendFile(), iar wildcard-urile au nevoie acum de nume precum /*splat.

Sฤƒ vedem un exemplu despre cum putem implementa rute รฎn Express. Exemplul nostru va crea 3 rute ca

  1. O rutฤƒ /Node care va afiศ™a ศ™irul โ€žTutorial on Nodeโ€ dacฤƒ aceastฤƒ rutฤƒ este accesatฤƒ
  2. Un traseu /Angular care va afiศ™a ศ™irul โ€žTutorial on Angularโ€ dacฤƒ este accesat acest traseu
  3. O rutฤƒ implicitฤƒ / care va afiศ™a ศ™irul โ€žBun venit la Guru99 de tutoriale.

Codul nostru de bazฤƒ va rฤƒmรขne acelaศ™i cu exemplele anterioare. Fragmentul de mai jos este un supliment pentru a prezenta modul รฎn care este implementatฤƒ rutarea.

Cod de rutare Express adnotat care defineศ™te rutele Node, Angular ศ™i implicite

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 Explicaลฃie:

  1. Aici definim un traseu dacฤƒ 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 URLFuncศ›ia are 2 parametri.
    • Parametrul principal pe care รฎl vom folosi este parametrul โ€žresโ€, care poate fi folosit pentru a trimite informaศ›ii รฎnapoi cฤƒtre client.
    • Parametrul โ€žreqโ€ conศ›ine informaศ›ii despre cererea care se face. Uneori, parametrii suplimentari pot fi trimiศ™i ca parte a cererii care se face ศ™i, prin urmare, parametrul โ€žreqโ€ poate fi folosit pentru a gฤƒsi parametrii suplimentari trimiศ™i.
  2. Folosim funcศ›ia de trimitere pentru a trimite ศ™irul โ€žTutorial on Nodeโ€ รฎnapoi cฤƒtre client dacฤƒ este aleasฤƒ ruta Node.
  3. Aici definim un traseu dacฤƒ 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. Folosim funcศ›ia de trimitere pentru a trimite ศ™irul โ€žTutorial on Angularโ€ รฎnapoi cฤƒtre client dacฤƒ este aleasฤƒ ruta Angular.
  5. Aceasta este ruta implicitฤƒ aleasฤƒ atunci cรขnd se navigheazฤƒ la rฤƒdฤƒcina aplicaศ›iei โ€” http://localhost:3000. Cรขnd este aleasฤƒ ruta implicitฤƒ, apare mesajul โ€žBun venit la Guruโ€ž99 de tutorialeโ€ vor fi trimise clientului.

Dacฤƒ comanda este executatฤƒ cu succes, urmฤƒtoarea ieศ™ire va fi afiศ™atฤƒ atunci cรขnd rulaศ›i codul รฎn browser.

ieศ™ire:

Browser care afiศ™eazฤƒ Bine aศ›i venit รฎn Guru99 Tutoriale la ruta Express implicitฤƒ

Din ieศ™ire,

  • Puteศ›i vedea clar cฤƒ dacฤƒ navigaศ›i la URL din localhost pe portul 3000, veศ›i vedea ศ™irul de caractere โ€žBun venit la Guru99 de tutoriale afiศ™ate pe paginฤƒ.
  • Deoarece รฎn codul nostru am menศ›ionat cฤƒ implicit URL ar afiศ™a acest mesaj.

Apoi, navigaศ›i la /Node.

Browser care afiศ™eazฤƒ Tutorialul despre Nod returnat de ruta Node

Din ieศ™ire,

  • Puteศ›i vedea cฤƒ dacฤƒ URL a fost schimbat รฎn /Node, va fi aleasฤƒ ruta Nodului respectiv ศ™i va fi afiศ™at ศ™irul โ€žTutorial pe Nodโ€.

Apoi navigaศ›i la /Angular.

Browser care afiศ™eazฤƒ Tutorialul despre Angular returnat de ruta Angular

Din ieศ™ire,

  • Puteศ›i vedea cฤƒ dacฤƒ URL a fost schimbat รฎn /Angular, ruta Nod respectivฤƒ va fi aleasฤƒ ศ™i se va afiศ™a ศ™irul โ€žTutorial on Angularโ€.

Exemplu de server web folosind express.js

Din exemplul de mai sus, am vฤƒzut cum putem decide ce ieศ™ire sฤƒ afiศ™ฤƒm pe baza rutฤƒrii. Acest tip de rutare este cel utilizat รฎn majoritatea aplicaศ›iilor web moderne. Cealaltฤƒ parte a unui server web se referฤƒ la utilizarea ศ™abloanelor รฎn Node.js.

Atunci cรขnd creaศ›i aplicaศ›ii Node.js rapide ศ™i din mers, o modalitate uศ™oarฤƒ ศ™i rapidฤƒ este utilizarea ศ™abloanelor pentru aplicaศ›ie. Existฤƒ multe framework-uri disponibile pe piaศ›ฤƒ pentru crearea de ศ™abloane. รŽn cazul nostru, vom lua exemplul framework-ului Jade pentru crearea de ศ™abloane.

Jade se instaleazฤƒ prin intermediul Node Package Manager. Acest lucru se poate face executรขnd urmฤƒtoarea linie รฎn linia de comandฤƒ

npm instaleazฤƒ jade

Comanda de mai sus solicitฤƒ Node Package Manager sฤƒ descarce modulele Jade necesare ศ™i sฤƒ le instaleze รฎn consecinศ›ฤƒ.

NOTฤ‚: รŽn cea mai recentฤƒ versiune de Node, jade a fost depreciat. รŽn schimb, foloseศ™te pug.

โš ๏ธ Echivalent modern: instala mops, redenumiศ›i index.jade รฎn index.pug ศ™i setaศ›i app.set('view engine','pug'). Pachetul jade nu primeศ™te actualizฤƒri; paศ™ii de mai jos se executฤƒ รฎn continuare.

Sฤƒ folosim framework-ul Jade nou instalat ศ™i sฤƒ creฤƒm cรขteva ศ™abloane de bazฤƒ.

Pas 1) Primul pas este sฤƒ creaศ›i un ศ™ablon Jade. Creaศ›i un fiศ™ier numit index.jade ศ™i introduceศ›i codul de mai jos. Asiguraศ›i-vฤƒ cฤƒ creaศ›i fiศ™ierul รฎn folderul โ€žviewsโ€.

markup ศ™ablon index.jade cu substituenศ›i pentru titlu ศ™i antet

  1. Aici specificฤƒm cฤƒ titlul paginii va fi schimbat la orice valoare care este transmisฤƒ atunci cรขnd acest ศ™ablon este invocat.
  2. De asemenea, specificฤƒm cฤƒ textul din eticheta antetului va fi รฎnlocuit cu orice text este transmis รฎn ศ™ablonul Jade.

Codul aplicaศ›iei care รฎl redฤƒ urmeazฤƒ.

Cod Express adnotat care seteazฤƒ motorul de vizualizare Jade ศ™i indexul de randare

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 Explicaลฃie:

  1. Primul lucru de specificat รฎn aplicaศ›ie este โ€žmotorul de vizualizareโ€ care va fi utilizat pentru a reda ศ™abloanele. Deoarece vom folosi Jade pentru a reda ศ™abloanele noastre, specificฤƒm acest lucru รฎn mod corespunzฤƒtor.
  2. Funcศ›ia de randare este utilizatฤƒ pentru a reda o paginฤƒ web. รŽn exemplul nostru, redฤƒm ศ™ablonul (index.jade) care a fost creat mai devreme.
  3. Transmitem valorile โ€žGuru99โ€ ศ™i โ€žBun venitโ€ la parametrii โ€žtitleโ€ ศ™i respectiv โ€žmessageโ€. Aceste valori vor fi รฎnlocuite de parametrii โ€žtitleโ€ ศ™i โ€žmessageโ€ declaraศ›i รฎn ศ™ablonul index.jade.

Dacฤƒ comanda este executatฤƒ cu succes, urmฤƒtoarea ieศ™ire va fi afiศ™atฤƒ atunci cรขnd rulaศ›i codul รฎn browser.

ieศ™ire:

Browser redฤƒ ศ™ablonul Jade cu titlu Guru99 ศ™i antetul Bun venit

Din ieศ™ire,

  • Putem vedea cฤƒ titlul paginii este setat la โ€žGuru99โ€ ศ™i antetul paginii este setat la โ€žBun venitโ€.
  • Acest lucru se datoreazฤƒ ศ™ablonului Jade care este invocat รฎn aplicaศ›ia noastrฤƒ Node.js.

รŽntrebฤƒri frecvente

middleware Funcศ›iile primesc req, res ศ™i next, apoi ruleazฤƒ รฎn ordinea de รฎnregistrare. Acestea gestioneazฤƒ jurnalizarea, analizarea corpului, autentificarea ศ™i erorile ศ™i fiecare trebuie sฤƒ รฎncheie rฤƒspunsul sau sฤƒ apeleze next().

Nu. Express grupeazฤƒ parserele, aศ™adar express.json() ศ™i express.urlencoded() รฎnlocuiesc parserele separate analizor-corp dependenศ›ฤƒ. Funcศ›ia helper combinatฤƒ bodyParser() a fost eliminatฤƒ, iar req.body rฤƒmรขne nedefinitฤƒ pรขnฤƒ cรขnd ruleazฤƒ un parser.

express 5 s-au fฤƒcut rutinele de gestionare conศ™tiente de promisiuni, s-au eliminat app.del() ศ™i res.sendfile(), s-a รฎmbunฤƒtฤƒศ›it potrivirea cฤƒilor astfel รฎncรขt wildcard-urile sฤƒ aibฤƒ nevoie de nume precum /*splat ศ™i s-a setat urlencoded extended la false รฎn mod implicit.

Pe Express 5, o promisiune respinsฤƒ trece automat la middleware-ul de gestionare a erorilor, astfel รฎncรขt apelurile manuale next(err) dispar. Express 4 necesitฤƒ un try/catch explicit รฎn fiecare asincron. suna inapoi.

mopsJade a fost redenumit din motive legate de marca รฎnregistratฤƒ, iar pachetul jade este depreciat. ศ˜abloanele existente continuฤƒ sฤƒ funcศ›ioneze dupฤƒ redenumirea lor รฎn .pug ศ™i schimbarea motorului de vizualizare.

Node.js 24 este linia LTS activฤƒ รฎn 2026, รฎn timp ce Node.js 22 rฤƒmรขne รฎn รฎntreศ›inere, deci instala unul dintre acestea. Express 5 necesitฤƒ Node.js 18 sau o versiune mai nouฤƒ.

Scanerele de รฎnvฤƒศ›are automatฤƒ citesc definiศ›iile rutelor ศ™i ordinea middleware-ului, apoi semnaleazฤƒ autentificarea lipsฤƒ, nevalidatฤƒ JavaScenariu reguli CORS permisive ศ™i de intrare. Un evaluator uman confirmฤƒ รฎn continuare fiecare constatare.

Copilotul GitHub ศ™i asistenศ›i agenศ›i similari genereazฤƒ fiศ™iere de rutฤƒ, middleware de validare ศ™i stub-uri de controler dintr-un singur prompt scurt. Fiecare rutฤƒ generatฤƒ are nevoie รฎn continuare de de testare รฎnainte de eliberare.

Rezumaศ›i aceastฤƒ postare cu: