Tutorial Node.js - Un ghid complet pentru începători



Acest tutorial Node.js va vorbi despre arhitectura de bază, modul de lucru și diverse module ale Node.js. De asemenea, va demonstra o implementare practică a Node.js și Express.js.

Dacă ați auzit vreodată despre Node.js, atunci s-ar putea să știți că este unul dintre cele mai proeminente și mai puternice cadre JavaScript. De la lansare, a continuat să-și păstreze strângerea pe piața IT. Chiar și cu introducerea de noi și vibrante ca , , Meteor etc., popularitatea Node.js pare să nu înceteze niciodată. Întrebându-se de ce? Ei bine, cu ajutorul acestui tutorial Node.js, vă voi oferi o perspectivă completă asupra acestuia. Deci, pregătește-te să te îndrăgostești de Node.js.

În acest tutorial Node.js, voi discuta subiectele de mai jos:





Ce este Node.js?

Node.js este un cadru puternic dezvoltat pe Motorul JavaScript V8 al Chrome care compilează JavaScript direct în codul mașinii native. Este un cadru ușor utilizat pentru crearea de aplicații web pe partea de server și extinde JavaScript API pentru a oferi funcționalități obișnuite pe partea de server. Este utilizat în general pentru dezvoltarea de aplicații pe scară largă, în special pentru site-uri de streaming video, aplicații cu o singură pagină și alte aplicații web. Node.js face utilizarea unui model de I / O non-blocant bazat pe evenimente, care îl face o alegere potrivită pentru aplicațiile în timp real cu intensitate mare de date.

Ca orice alte limbaje de programare, node.js folosește pachete și module. Acestea sunt bibliotecile care conțin diferite funcții și sunt importate din npm (manager de pachete nod) în codul nostru și utilizate în programe. Unele dintre caracteristicile majore care definesc Node.js sunt enumerate mai jos:



Caracteristicile Node.js

  1. Sursa deschisa
    Node.js este o licență MIT cadru open source care este susținută de o comunitate imensă. Comunitatea sa este destul de activă, au contribuit la adăugarea de noi capacități aplicațiilor Node.js.
  2. Simplu și rapid
    Deoarece Node.js este construit pe motorul JavaScript V8 de la Google Chrome, bibliotecile sale sunt capabile să execute coduri rapide.
  3. Asincron
    Toate bibliotecile Node.js sunt asincrone, ceea ce înseamnă că serverele bazate pe Node.js nu așteaptă niciodată ca un API să trimită răspunsul înapoi și să treacă la următorul API.
  4. Scalabilitate ridicată
    Datorită mecanismului evenimentului, Node.js este foarte scalabil și ajută serverul să aibă un răspuns care nu blochează.
  5. Cu un singur fir
    Cu ajutorul circuitului de evenimente, Node.js este capabil să urmeze modelul cu un singur fir. Aceasta permite unui singur program să gestioneze mai multe solicitări.
  6. Fără tampon
    Una dintre funcționalitățile majore ale aplicațiilor Node.js este că nu tamponează niciodată date.
  7. Cross-Platform
    Node.js poate fi ușor construit și implementat pe diverse platforme, cum ar fi Windows, MAC și Linux.

Să avansăm acum și să vedem cum să implementăm codul real în browser. Dar înainte de aceasta, trebuie să descărcați și să instalați în sistemele dvs. Puteți consulta celălalt articol al meu pentru a afla completul Procesul de instalare Node.js .

Deci, acum, să mergem mai departe în acest tutorial Node.js, unde voi vorbi despre cea mai importantă componentă a Node.js, adică npm.

NPM (Node Package Manager)

NPM înseamnă Node Package Manager care, după cum sugerează și numele, este un manager de pachete pentru pachetele / modulele Node.js. Din versiunea Node 0.6.0. în continuare, npm a fost adăugat ca implicit în instalarea nodului. Vă scutește de instalarea explicită a npm.



NPM ajută practic în două moduri:

ce este un fir de demon
  1. Oferă și găzduiește depozite online pentru pachetele / modulele node.js care pot fi descărcate cu ușurință și utilizate în proiectele noastre. Le găsiți aici: npmjs.com
  2. Oferă utilitarul Liniei de comandă pentru a instala diverse pachete Node.js, pentru a gestiona versiunile Node.js și dependențele pachetelor.

Dar acum, trebuie să vă întrebați ce anume sunt aceste module și cum ne ajută să construim aplicațiile Node.js. Ei bine, în următoarea secțiune a acestui tutorial Node.js, vă voi oferi o perspectivă completă asupra modulelor Node.js.

Module Node.js

Modulele din Node.js reprezintă diverse funcționalități care sunt grupate în fișiere JS unice sau multiple. Aceste module au un context unic, astfel încât nu interferează și nici nu poluează domeniul de aplicare al altor module.

Aceste module permit reutilizarea codului și sporesc ușurința de utilizare. Node.js oferă practic trei tipuri de module:

  1. Module de bază
  2. Module locale
  3. Module terță parte

Modulul de bază

Deoarece Node.js este un foarte ușor cadru, modulele de bază includ funcționalitățile minime absolute. Aceste module sunt, în general, încărcate atunci când procesul Node își începe execuția. Tot ce trebuie să faceți este să importați aceste module de bază pentru a le utiliza în codul dvs.

Mai jos am enumerat câteva dintre modulele de bază importante.

Modulul de bază Descriere
http Conține clase, metode și evenimente necesare pentru crearea serverului HTTP Node.js
url Conține metode de rezoluție URL și analiză în nod
șir de interogare Conține metode pentru a face față unui șir de interogare Node
cale Conține metode de tratare a căilor de fișiere
fs Conține clase, metode și evenimente pentru a lucra cu I / O de fișiere
Util Conține funcții utilitare care pot fi utile pentru programatori

Puteți încărca modulul dvs. de bază, utilizând codul de mai jos:

var module = require ('module_name')

Să vedem acum ce sunt „module locale”.

Module locale

Modulele locale ale Node.js sunt module personalizate care sunt create local de utilizator / dezvoltator în aplicație. Aceste module pot include diverse funcționalități grupate în fișiere și foldere distincte, care pot fi distribuite cu ușurință în comunitatea Node.js folosind NPM.

Aceste module sunt încărcate în mod similar cu modulele de bază. Să vă arătăm cum să o faceți folosind un exemplu de bază.

Creați fișierul personalizat / local module.js

var detail = {name: function (name) {console.log ('Name:' + name)}, domain: function (domain) {console.log ('Domain:' + domain)}} module.exports = detail

Includeți fișierul modulului în fișierul principal al aplicației.

var myLogModule = require ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Educație')

Acum puteți executa aceste fișiere folosind comanda de mai jos:

node application.js

Permiteți-mi acum să vă arăt ce sunt modulele externe.

Module externe

Puteți utiliza externul sau 3rdmodule de petrecere doar descărcându-le prin NPM. Aceste module sunt în general dezvoltate de alți dezvoltatori și sunt gratuite. Puține dintre cele mai bune module externe sunt expres, reacționează, înghițesc, mangustă, mocha etc.

Încărcarea globală a modulelor terță parte:

instalare npm --g

Includeți fișierul modulului în fișierul principal al aplicației:

npm install --save

Fișier JSON

fișier package.json în Node.js este inima întregii aplicații. Practic este fișierul manifest care conține metadatele proiectului. Astfel, înțelegerea și lucrul cu acest fișier devin foarte importante pentru o dezvoltare de succes a proiectului Node.

Fișierul package.json constă în general din metadatele aplicației, care sunt clasificate în continuare în două categorii:

  1. Identificarea proprietăților metadatelor: Acesta constă din proprietăți precum numele proiectului, versiunea curentă a modulului, licența, autorul proiectului, descrierea proiectului etc.
  1. Scrierea directă în fișier: Puteți scrie direct informațiile necesare în fișierul package.json și le puteți include în proiectul dvs.

Până acum v-ați familiarizat deja cu diferitele componente ale aplicației Node JS. În următoarea secțiune a acestui tutorial Node.js, voi împărtăși câteva elemente de bază ale Node Js, astfel încât să putem începe cu mâinile pe.

Node.js Noțiuni de bază

Deoarece Node.js este un cadru JavaScript, acesta folosește sintaxa JavaScript. Dacă doriți să aflați JavaScript în detaliu, puteți consulta acest lucru . Deocamdată, vă voi spăla cu câteva elemente de bază ale Node.js, cum ar fi:

Tipuri de date

Ca orice alt limbaj de programare, Node.js are diferite tipuri de date, care sunt clasificate în continuare în tipuri de date Primitive și Non-Primitive.

Tipurile de date primitive sunt:

conversie java dublu la int
  1. Şir
  2. Număr
  3. Boolean
  4. Nul
  5. Nedefinit

Tipurile de date neprimitive sunt:

  1. Obiect
  2. Data
  3. Matrice

Variabile

Variabile sunt entități care dețin valori care pot varia în cursul unui program. Pentru a crea o variabilă în Node.js, trebuie să utilizați un cuvânt cheie rezervat var. Nu trebuie să atribuiți un tip de date, deoarece compilatorul îl va alege automat.

Sintaxă:

var varName = valoare

Operatori

Node.js acceptă operatorii de mai jos:

Tipul operatorului Operatori
Aritmetic +, -, /, *,%, ++, -
Misiune =, + =, - =, * =, / =,% =
Condiţional =?
Comparaţie ==, === ,! = ,! ==,>,> =,<, <=,
Logic &&, || ,!
Bitwise &, |, ^, ~,<>, >>>

Funcții

Funcțiile din Node.js sunt un bloc de cod care are un nume și este scris pentru a realiza o anumită sarcină. Trebuie să utilizați funcția de cuvinte cheie pentru a o crea. O funcție este, în general, un proces în doi pași. Primul este definirea funcției și al doilea este invocarea ei. Mai jos este sintaxa creării și invocării unei funcții:

Exemplu:

// Definirea unei funcții funcție display_Name (prenume, prenume) {alert ('Bună ziua' + prenume + '' + prenume)} // Invocarea funcției display_Name ('Parcare', 'Jimin')

Obiecte

Un obiect este un tip de date neprimitiv care poate conține mai multe valori în ceea ce privește proprietățile și metodele. Obiectele Node.js sunt entități independente, deoarece nu există un concept de clasă. Puteți crea un obiect în două moduri:

  1. Folosind obiectul literal
  2. Folosind constructorul de obiecte

Exemplu:

// obiect cu proprietăți și metodă var angajat = {// proprietăți firstName: 'Minho', prenume: 'Choi', vârstă: 35, salariu: 50000, // metodă getFullName: function () {return this.firstName + '' + this.lastName}}

Sistemul de fișiere

Pentru a accesa sistemul de fișiere fizic, Node.js folosește fișierul fs modul care se ocupă practic de toate operațiunile I / O de fișiere asincrone și sincrone. Acest modul este importat folosind comanda de mai jos:

var fs = require ('fs')

Unele dintre utilizarea generală pentru modulele de sistem de fișiere sunt:

  • Citiți fișiere
    1. fs.readFile ()
var http = require ('http') var fs = require ('fs') http.createServer (function (req, res) {fs.readFile ('script.txt', function (err, data) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}). Asculta (8080)
  • Creați fișiere
    1. appendFile ()
    2. deschis()
    3. writeFile ()
  • Actualizați fișierele
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Sterge fisierele
    1. fs.unlink ()
  • Redenumiți fișierele
    1. fs.rename ()

Deci, cu aceste comenzi, puteți efectua destul de mult toate operațiunile necesare pe fișierele dvs. Să trecem acum mai departe cu acest tutorial Node.js și să vedem ce sunt evenimentele și cum sunt tratate în Node.js.

Evenimente

Așa cum am menționat deja, aplicațiile Node.js sunt cu un singur thread și sunt orientate spre evenimente. Node.js acceptă concurența, deoarece este bazată pe evenimente și, astfel, folosește concepte precum evenimente și apeluri de apel. Funcțiile de sincronizare apeluri ajută Node.js să mențină concurența în întreaga aplicație.

Practic, într-o aplicație Node.js, există o buclă principală care așteaptă și ascultă evenimentele și, odată ce orice eveniment este finalizat, inițiază imediat o funcție de apel invers.

Diagrama de mai jos reprezintă modul în care sunt conduse evenimentele în Node.js.

Model de fir - Tutorial Node.js - Edureka

Un lucru pe care trebuie să-l rețineți aici este că, chiar dacă evenimentele arată similar cu funcțiile de apel invers, dar diferența constă în funcționalitățile lor. Când o funcție asincronă returnează rezultatele sale, apelurile sunt invocate, pe de altă parte, gestionarea evenimentelor funcționează complet pe modelul de observator. Și în Node.js, metodele care ascultă evenimentele sunt numite observatori. În momentul declanșării unui eveniment, funcția de ascultător începe să se execute automat. Modulele de evenimente și clasa EventEmitter oferă multiple evenimente încorporate care sunt utilizate pentru a lega evenimentele cu ascultătorii de evenimente. Mai jos am scris sintaxa pentru asta.

Legarea evenimentului de un ascultător de evenimente

// Modul de importare evenimente var my_Events = require ('events') // Creați un obiect eventEmitter var my_EveEmitter = new my_Events.EventEmitter ()

Legarea unui gestionar de evenimente la un eveniment

// Eveniment obligatoriu și gestionare de evenimente my_EveEmitter.on ('eventName', eventHandler)

Tragerea unui eveniment

// Trageți un eveniment my_EveEmitter.emit ('eventName')

Acum, să încercăm să implementăm lucrurile despre care am discutat în această secțiune de evenimente Node.js.Codul de mai jos prezintă o reprezentare simplă a executării evenimentului în Node.js.

var emitter = require ('events'). EventEmitter function iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Procesare Iterare:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', funcție ( info) {console.log ('Pornirea procesului pentru' + info)}) it.on ('AfterProcess', funcție (info) {console.log ('Finalizarea procesării pentru' + info)

În următoarea secțiune a acestui tutorial Node.js, vă voi oferi informații despre unul dintre cele mai importante module ale Node.js numit modulul HTTP.

Modul HTTP

În general, Node.js este utilizat pentru dezvoltarea de aplicații bazate pe server. Dar folosind modulul, puteți crea cu ușurință servere web care pot răspunde la solicitările clientului. Astfel, este menționat și la modulul web și oferă module precum HTTP și cerere care facilitează Node.js în procesarea cererilor de server.

Puteți include cu ușurință acest modul în aplicația dvs. Node.js doar scriind codul de mai jos:

var http = require ('http')

Mai jos am scris un cod, care arată cum este dezvoltat un server Web în Node.js.

// apelarea bibliotecii http var http = require ('http') var url = require ('url') // crearea serverului var server = http.createServer (funcție (req, res) {// setarea conținutului antet res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // send string to response res.end (txt)}) // atribuirea 8082 ca port de ascultare server server.listen (8082)

În următoarea secțiune a acestui tutorial Node.js, voi vorbi despre Express.js, care este foarte utilizat pentru dezvoltarea de aplicații web pe partea de server.

Express.js

Express.js este un cadru construit pe partea de sus a Node.js care facilitează gestionarea fluxului de date între server și rute în aplicațiile de pe server. Este un cadru ușor și flexibil, care oferă o gamă largă de caracteristici necesare pentru web, precum și dezvoltarea aplicațiilor mobile.

Express.js este dezvoltat pe modulul middleware al Node.js numit conectați . Modulul de conectare utilizează în continuare http modul de comunicare cu Node.js. Astfel, dacă lucrați cu oricare dintre modulele middleware bazate pe conectare, vă puteți integra cu ușurință cu Express.js.

Nu, doar aceasta, câteva dintre avantajele majore ale Express.js sunt:

  • Fac mai rapid dezvoltarea aplicațiilor web
  • Ajută la crearea de aplicații mobile și web de tipuri cu o singură pagină, cu mai multe pagini și hibride
  • Express oferă două motoare de modelare și anume, Jade și EJS
  • Express urmează arhitectura Model-View-Controller (MVC)
  • Realizează integrarea cu baze de date precum MongoDB, Redis, MySQL
  • Definește o eroare la gestionarea middleware-ului
  • Simplifică configurarea și personalizarea ușor pentru aplicație.

Cu toate aceste caracteristici, Express își asumă responsabilitatea părții backend din stiva MEAN. Mean Stack este stiva de software JavaScript open-source care este utilizată pentru crearea de site-uri web dinamice și aplicații web. Aici, RĂU înseamnă M ongoDB, ESTE xpress.js, LA ngularJS și N ode.js.

Să vedem acum un exemplu simplu de înțeles, cum funcționează Express.js cu Node.js pentru a ne ușura munca. Dar, înainte de a începe să lucrați cu Express.js, trebuie să îl instalați în sistemul dvs.

Pentru a instala Express.js la nivel global, puteți utiliza comanda de mai jos:

npm instala -g express

Sau, dacă doriți să îl instalați local în folderul de proiect, trebuie să executați comanda de mai jos:

npm install express --save

Deoarece am terminat toate pregătirile, să trecem acum direct la implementarea practică. Aici, voi arăta o aplicație simplă de autentificare a utilizatorului utilizând Node.js și Express.js.

Tutorial Node.js Dezvoltarea aplicației pas cu pas cu Express.js

Pentru aceasta, vom avea nevoie de fișiere de mai jos:

  • pachet.json
  • script.js
  • vederi
    • index.jad
    • login.jade
    • sigur.jad
    • neautorizat.jad
    • bun venit.jad
  • lib
    • routes.js

Deci, să începem cu pachet.json .

{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express cu Node.js', 'version': '0.0.0', 'scripts': {'start': 'node script.js '},' engines ': {' node ':' ~ 0.4.12 '},' dependencies ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}

Apoi, trebuie să creați fișierul script.js .

var express = require ('express') var http = require ('http') var port = 8999 var app = express () const flash = require ('connect-flash') var cookieParser = require ('cookie-parser') var server = funcția http.createServer (aplicație) checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // nu servesc / securizează pe cei care nu s-au conectat dacă (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('neautorizat', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({secret: 'example'})) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('motor de vizualizare', 'jad') app.set ('opțiuni de vizualizare', {layout: false}) require ('./ lib / routes.js') (app) app.listen (port) console .log („Nod ascultând pe portul% s”, port)

Acum, creați un folder denumit vizualizare, sub care veți adăuga fișierele jad care vor fi responsabile pentru diferite vizualizări de pagină. Primul fișier de vizualizare pe care trebuie să îl creați este index.jad .

!!! 5 html (lang = 'ro') head title Autentificare utilizator Exemplu corp h1 center Autentificare Demo folosind Express h3 Navigați la h4 ul li: a (href = '/ secure') Conținut securizat li: a (href = '/ welcome') Pagina de întâmpinare li: a (href = '/ deconectare') Deconectare

Acum, creați fișierul login.jade fişier.

!!! 5 html (lang = 'ro') head title Exemplu de autentificare expres corp h1 centru Conectați-vă la acest centru de exemplu de autentificare Express p Utilizați utilizator pentru numele de utilizator și trece pentru parola. formular (metodă = 'postare') p etichetă (pentru = 'nume de utilizator') Introducere adresă de e-mail (tip = 'text', nume = 'nume de utilizator', clasă = 'formular-control', id = 'exempluInputPassword1', substituent = ' E-mail ', style =' width: 400px ') p etichetă centrală (pentru =' parolă ') Introducere parolă (tip =' parolă ', nume =' parolă ', class =' ​​formular-control ', id =' exempluInputPassword1 ', substituent = 'Parolă', stil = 'lățime: 400px') p centru Trimiteți - fiecare mesaj în bliț h4 (stil = 'culoare: roșu') # {mesaj}

Următorul pas este crearea fișierului bun venit.jad .

!!! 5 html (lang = 'ro') head title Autentificare utilizator Exemplu corp h1 center Bine ați venit la Tutorialul Edureka!

Apoi, creați fișierul sigur.jad fişier.

aws lansează instanța din instantaneu
!!! 5 html (lang = 'ro') head title Exemplu de autentificare expres Corp corp h1 Bună ziua, utilizator sigur. p Navigați la ul li: a (href = '/ secure') Conținut securizat li: a (href = '/ welcome') Pagina de întâmpinare li: a (href = '/ logout') Deconectare

Acum, creați fișierul neautorizat.jad fişier.

!!! 5 html (lang = 'ro') head title Autentificare utilizator Exemplu corp h1 center Neautorizat p Nu sunteți autorizat să vizualizați această pagină. p Vă rog ' a continua

Acum, trebuie să creați un folder și să îl denumiți lib . Acum, creați un route.js fișier care va mapa toate paginile.

var util = require ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / welcome ', function (req, res, next) {res.render (' welcome ')}} app.get (' / secure ', function (req, res, next) {res.render (' secure ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}) app.post ('/ login', function ( req, res, next) {// s-ar putea să doriți să faceți o căutare a bazei de date sau ceva mai scalabil aici dacă (req.body.username && req.body.username === „utilizator” && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('error', 'Username and password are incorrect') res. redirect ('/ login')}}) app.get ('/ logout', funcție (req, res, next) {șterge req.session.authenticated res.redirect ('/')})}

Acum, dacă doriți să executați acest cod pe cont propriu, îl puteți descărca de aici: Tutorial PDF Node.js .

Cu aceasta, ajungem la sfârșitul acestui tutorial Node.js. Sper că am putut explica conceptele Node.js de la capăt.

Dacă ați găsit acest „Tutorial Node.js ”Relevant, verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Ai o întrebare pentru noi? Vă rugăm să îl menționați în secțiunea de comentarii a acestui tutorial Node.js și vă vom răspunde.