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.
ร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.
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:
- รn prima noastrฤ linie de cod, folosim funcศia require pentru a include โmodulul expresโ.
- รnainte de a รฎncepe sฤ folosim modulul expres, trebuie sฤ facem un obiect din acesta.
- 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.
- ร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.
- 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:
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
- O rutฤ /Node care va afiศa ศirul โTutorial on Nodeโ dacฤ aceastฤ rutฤ este accesatฤ
- Un traseu /Angular care va afiศa ศirul โTutorial on Angularโ dacฤ este accesat acest traseu
- 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.
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:
- 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.
- Folosim funcศia de trimitere pentru a trimite ศirul โTutorial on Nodeโ รฎnapoi cฤtre client dacฤ este aleasฤ ruta Node.
- 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.
- Folosim funcศia de trimitere pentru a trimite ศirul โTutorial on Angularโ รฎnapoi cฤtre client dacฤ este aleasฤ ruta Angular.
- 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:
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.
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.
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โ.
- Aici specificฤm cฤ titlul paginii va fi schimbat la orice valoare care este transmisฤ atunci cรขnd acest ศablon este invocat.
- 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ฤ.
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:
- 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.
- 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.
- 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:
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.









