Vadnica za Node.js - popoln vodnik za začetnike



Ta vadnica Node.js bo govorila o osnovni arhitekturi, delu in različnih modulih Node.js. Prikazal bo tudi praktično izvajanje Node.js in Express.js.

Če ste že kdaj slišali za Node.js, boste morda vedeli, da je to eden najvidnejših in najmočnejših okvirov JavaScript. Od izdaje še naprej ostaja na trgu IT. Tudi z uvedbo novega in živahnega všeč , , Meteor itd., Se zdi, da priljubljenost Node.js nikoli ne preneha. Se sprašujete, zakaj? No, s pomočjo te vadnice Node.js vam bom dal popoln vpogled v to. Torej, pripravite se, da se boste zaljubili v Node.js.

V tej vadnici Node.js bom razpravljal o naslednjih temah:





Kaj je Node.js?

Node.js je zmogljiv okvir, razvit na Chromov motor V8 JavaScript ki prevede JavaScript neposredno v domačo strojno kodo. Je lahek okvir, ki se uporablja za ustvarjanje spletnih aplikacij na strani strežnika in razširja JavaScript API, da ponuja običajne funkcije na strani strežnika. Običajno se uporablja za obsežen razvoj aplikacij, zlasti za spletna mesta za pretakanje video posnetkov, aplikacije z eno stranjo in druge spletne aplikacije. Node.js naredi uporaba dogodkovnega, neblokirajočega V / I modela, zaradi česar je prava izbira za podatkovno intenzivne aplikacije v realnem času.

Kot vsi drugi programski jeziki tudi node.js uporablja pakete in module. To so knjižnice, ki vsebujejo različne funkcije in so uvožene iz npm (upravitelj paketov vozlišč) v našo kodo in uporabljene v programih. Nekatere glavne značilnosti, ki opredeljujejo Node.js, so navedene spodaj:



Značilnosti Node.js

  1. Odprtokodno
    Node.js je odprtokodna okvirna licenca za MIT, ki jo podpira ogromna skupnost. Njegova skupnost je precej aktivna in je prispevala k dodajanju novih zmožnosti aplikacijam Node.js.
  2. Preprosto in hitro
    Ker je Node.js zgrajen na mehanizmu JavaScript V8 Google Chrome, lahko njegove knjižnice hitro izvajajo kodo.
  3. Asinhrono
    Vse knjižnice Node.js so asinhrone, kar pomeni, da strežniki, ki temeljijo na Node.js, nikoli ne čakajo, da API pošlje odgovor in se premakne na naslednji API.
  4. Visoka razširljivost
    Zaradi mehanizma dogodkov je Node.js zelo razširljiv in strežniku pomaga pri neblokirajočem odzivu.
  5. Enojni navoj
    S pomočjo zanke dogodkov lahko Node.js sledi enonitnemu modelu. To omogoča enemu programu za obdelavo več zahtev.
  6. Brez medpomnjenja
    Ena glavnih funkcij aplikacij Node.js je, da nikoli ne medpomni nobenih podatkov.
  7. Med platformo
    Node.js je mogoče enostavno zgraditi in uvesti na različnih platformah, kot so Windows, MAC in Linux.

Pojdimo naprej in poglejmo, kako dejansko kodo namestiti v brskalnik. Pred tem pa morate prenesti in namestiti v svoje sisteme. Če želite izvedeti celoto, se lahko obrnete na moj drugi članek Postopek namestitve Node.js .

Zdaj pa pojdimo naprej v tej vadnici za Node.js, kjer bom govoril o najpomembnejši komponenti Node.js, tj. Npm.

NPM (upravitelj paketov vozlišč)

NPM pomeni Node Package Manager, ki je, kot že ime pove, upravitelj paketov za pakete / module Node.js. Iz različice Node 0.6.0. naprej je bil pri namestitvi vozlišča privzeto dodan npm. Reši vas težav pred izrecno namestitvijo npm.



NPM v bistvu pomaga na dva načina:

razlika med izvedbami in razširitvami jave
  1. Ponuja in gosti spletne repozitorije za pakete / module node.js, ki jih je mogoče enostavno prenesti in uporabiti v naših projektih. Najdete jih tukaj: npmjs.com
  2. Ponuja pripomoček ukazne vrstice za namestitev različnih paketov Node.js, upravljanje različic Node.js in odvisnosti paketov.

Zdaj pa se gotovo sprašujete, kaj natančno so ti moduli in kako nam pomagajo pri gradnji aplikacij Node.js. No, v naslednjem razdelku te vadnice Node.js vam bom dal popoln vpogled v module Node.js.

Moduli Node.js

Moduli v Node.js predstavljajo različne funkcije, ki so združene v eno ali več datotek JS. Ti moduli imajo edinstven kontekst, zato nikoli ne posegajo in ne onesnažujejo obsega drugih modulov.

Ti moduli omogočajo večkratno uporabo kode in lažjo uporabo. Node.js v bistvu ponuja tri vrste modulov:

  1. Jedrni moduli
  2. Lokalni moduli
  3. Moduli drugih proizvajalcev

Jedrni modul

Ker je Node.js zelo lahka osnovni moduli združujejo absolutno minimalne funkcionalnosti. Ti moduli se navadno naložijo, ko se postopek Node začne izvajati. Vse, kar morate storiti, je, da uvozite te osnovne module, da jih lahko uporabite v svoji kodi.

Spodaj sem naštel nekaj pomembnih modulov Core.

Jedrni modul Opis
http Vsebuje razrede, metode in dogodke, potrebne za ustvarjanje strežnika HTTP Node.js.
url Vsebuje metode za ločevanje in razčlenjevanje URL-jev v vozlišču
niz poizvedb Vsebuje metode za obravnavo niza poizvedbe Node
pot Vsebuje metode za obravnavo poti datotek
fs Vsebuje razrede, metode in dogodke za delo z datotekami I / O
Koristno Vsebuje uporabne funkcije, ki so lahko koristne za programerje

Svoj osnovni modul lahko naložite s spodnjo kodo:

var module = require ('module_name')

Poglejmo zdaj, kaj so 'lokalni moduli'.

Lokalni moduli

Lokalni moduli Node.js so moduli po meri, ki jih v aplikaciji lokalno ustvari uporabnik / razvijalec. Ti moduli lahko vključujejo različne funkcionalnosti, združene v različne datoteke in mape, ki jih je mogoče enostavno distribuirati v skupnosti Node.js z uporabo NPM.

Ti moduli so naloženi na podoben način kot osnovni moduli. Naj vam pokažemo, kako to narediti na osnovnem primeru.

Ustvarite svojo datoteko po meri / lokalnem module.js

var podrobnost = {ime: funkcija (ime) {console.log ('Ime:' + ime)}, domena: funkcija (domena) {console.log ('Domena:' + domena)}} module.exports = podrobnost

Datoteko modula vključite v glavno datoteko aplikacije.

var myLogModule = require ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Izobraževanje')

Zdaj lahko te datoteke izvedete s spodnjim ukazom:

vozlišče application.js

Naj vam zdaj pokažem, kaj so zunanji moduli.

Zunanji moduli

Uporabite lahko zunanjo ali 3rdmoduli za stranke samo tako, da jih prenesete prek NPM. Te module običajno razvijajo drugi razvijalci in so brezplačni za uporabo. Nekaj ​​najboljših zunanjih modulov je ekspresno, reakcijsko, gutljaj, mungos, moka itd.

Globalno nalaganje modulov tretjih oseb:

npm namestitev --g

Datoteko modula vključite v glavno datoteko aplikacije:

npm install --save

Datoteka JSON

The datoteko package.json v Node.js je srce celotne aplikacije. V bistvu je manifestna datoteka, ki vsebuje metapodatke projekta. Tako je razumevanje in delo s to datoteko zelo pomembno za uspešen razvoj projekta Node.

Datoteka package.json je na splošno sestavljena iz metapodatkov aplikacije, ki so nadalje razvrščeni v spodnji kategoriji:

  1. Prepoznavanje lastnosti metapodatkov: Ta je sestavljen iz lastnosti, kot so ime projekta, trenutna različica modula, licenca, avtor projekta, opis projekta itd.
  1. Pisanje neposredno v datoteko: Potrebne podatke lahko neposredno zapišete v datoteko package.json in jih vključite v svoj projekt.

Zdaj ste se že seznanili z različnimi komponentami aplikacije Node JS. V naslednjem poglavju te vadnice za Node.js bom delil nekaj osnov o Node Js, da bomo lahko začeli z rokami.

Osnove Node.js

Ker je Node.js okvir JavaScript, uporablja sintakso JavaScript. Če se želite podrobno naučiti JavaScript, se lahko sklicujete na to . Za zdaj vam bom predstavil nekaj osnov Node.js, kot so:

Vrste podatkov

Kot kateri koli drug programski jezik ima tudi Node.js različne vrste podatkov, ki so nadalje razvrščene v primitivne in neprimitivne tipe podatkov.

Primitivni tipi podatkov so:

  1. Vrvica
  2. Številka
  3. Logično
  4. Nič
  5. Nedoločeno

Neprimitivne vrste podatkov so:

  1. Predmet
  2. Datum
  3. Matrika

Spremenljivke

Spremenljivke so entitete, ki imajo vrednosti, ki se lahko med programom spreminjajo. Če želite v Node.js ustvariti spremenljivko, morate uporabiti rezervirano ključno besedo var. Ni vam treba dodeliti podatkovnega tipa, saj ga bo prevajalnik samodejno izbral.

Sintaksa:

var varName = vrednost

Operaterji

Node.js podpira spodnje operaterje:

kaj so dogodki v javascriptu
Vrsta operaterja Operaterji
Aritmetika +, -, /, *,%, ++, -
Dodelitev =, + =, - =, * =, / =,% =
Pogojno =?
Primerjava ==, === ,! = ,! ==,>,> =,<, <=,
Logično &&, || ,!
Bitno &, |, ^, ~,<>, >>>

Funkcije

Funkcije v Node.js je blok kode, ki ima ime in je napisan za dosego določene naloge. Za njegovo ustvarjanje morate uporabiti funkcijo ključne besede. Funkcija je običajno dvostopenjski postopek. Prvi je definiranje funkcije, drugi pa priklic. Spodaj je sintaksa ustvarjanja in priklica funkcije:

Primer:

// Določanje funkcije funkcije display_Name (firstName, lastName) {alert ('Hello' + firstName + '' + lastName)} // Klicanje funkcije display_Name ('Park', 'Jimin')

Predmeti

Predmet je neprimitiven podatkovni tip, ki lahko vsebuje več vrednosti glede na lastnosti in metode. Objekti Node.js so samostojne entitete, saj ne obstaja koncept razreda. Predmet lahko ustvarite na dva načina:

  1. Uporaba Object literal
  2. Uporaba Object constructor

Primer:

// objekt z lastnostmi in metodo var zaposleni = {// lastnosti firstName: 'Minho', lastName: 'Choi', starost: 35, plača: 50000, // metoda getFullName: function () {return this.firstName + '' + this.lastName}}

Datotečni sistem

Za dostop do fizičnega datotečnega sistema Node.js uporablja datoteko fs modul, ki v osnovi skrbi za vse asinhrone in sinhrone vhodno / izhodne operacije datotek. Ta modul je uvožen z uporabo spodnjega ukaza:

var fs = require ('fs')

Nekatere splošne uporabe modulov datotečnega sistema so:

  • Branje datotek
    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 ()})}). Listen (8080)
  • Ustvari datoteke
    1. appendFile ()
    2. odprto()
    3. writeFile ()
  • Posodobite datoteke
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Izbriši datoteke
    1. fs.unlink ()
  • Preimenujte datoteke
    1. fs.rename ()

Torej, s temi ukazi lahko v veliki meri izvedete vse zahtevane operacije nad datotekami. Pojdimo zdaj naprej s to vadnico za Node.js in si oglejmo, kaj so dogodki in kako se z njimi ravna v Node.js.

Dogodki

Kot sem že omenil, so aplikacije Node.js enojne z nitmi in jih vodijo dogodki. Node.js podpira sočasnost, saj jo vodijo dogodki, in tako uporablja koncepte, kot so dogodki in povratni klici. Klici funkcije async pomagajo Node.js pri vzdrževanju sočasnosti v celotni aplikaciji.

V bistvu je v aplikaciji Node.js glavna zanka, ki čaka in posluša dogodke, in ko je kateri koli dogodek končan, takoj sproži funkcijo povratnega klica.

Spodnji diagram predstavlja, kako so dogodki vodeni v Node.js.

Model niti - Vadnica za Node.js - Edureka

Tu morate opozoriti na to, da čeprav so dogodki podobni funkcijam povratnega klica, razlika pa je v njihovih funkcionalnostih. Ko asinhrona funkcija vrne rezultate, se po drugi strani prikličejo povratni klici, obdelava dogodkov pa popolnoma deluje na vzorcu opazovalca. In v Node.js metode, ki poslušajo dogodke, imenujemo opazovalci. V trenutku, ko se dogodek sproži, se njegova funkcija poslušalca samodejno začne izvajati. Moduli dogodkov in razred EventEmitter nudijo več vgrajenih dogodkov, ki se uporabljajo za povezovanje dogodkov s poslušalci dogodkov. Spodaj sem zapisal sintakso za to.

Vezava dogodka na poslušalca dogodka

// Uvoz modula dogodkov var my_Events = require ('events') // Ustvari objekt eventEmitter var my_EveEmitter = nov my_Events.EventEmitter ()

Vezava vodnika dogodkov na dogodek

// Vezava dogodka in obdelovalca dogodkov my_EveEmitter.on ('eventName', eventHandler)

Odpoved dogodka

// sproži dogodek my_EveEmitter.emit ('eventName')

Zdaj poskusimo implementirati stvari, o katerih sem razpravljal v tem razdelku Node.js Event.Spodnja koda prikazuje preprosto predstavitev izvajanja dogodkov v Node.js.

var emiter = require ('events'). EventEmitter funkcija iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Iteracija obdelave:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('Zagon postopka za' + info)}) it.on ('AfterProcess', funkcija (info) {console.log ('Končna obdelava za' + info)

V naslednjem poglavju te vadnice za Node.js vam bom dal vpogled v enega najpomembnejših modulov Node.js, imenovan HTTP modul.

Modul HTTP

Na splošno se Node.js uporablja za razvoj strežniških aplikacij. Toda z uporabo modula lahko enostavno ustvarite spletne strežnike, ki se lahko odzovejo na zahteve odjemalca. Tako se sklicuje tudi na spletni modul in ponuja module, kot sta HTTP in zahteva, ki Node.js olajšajo obdelavo strežniških zahtev.

Ta modul lahko enostavno vključite v svojo aplikacijo Node.js, tako da napišete spodnjo kodo:

var http = require ('http')

Spodaj sem napisal kodo, ki prikazuje, kako je razvit spletni strežnik v Node.js.

// klic knjižnice http var http = require ('http') var url = require ('url') // ustvarjanje strežnika var server = http.createServer (function (req, res) {// nastavitev glave vsebine res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // pošlji niz odgovoru res.end (txt)}) // dodeli 8082 kot vrata strežnika za poslušanje strežnika.listen (8082)

V naslednjem poglavju te vadnice Node.js bom govoril o Express.js, ki se močno uporablja za razvoj spletnih aplikacij na strani strežnika.

Express.js

Express.js je ogrodje, zgrajeno na vrhu Node.js, ki olajša upravljanje pretoka podatkov med strežnikom in potmi v strežniških aplikacijah. Je lahek in prilagodljiv okvir, ki ponuja širok spekter funkcij, potrebnih za splet in razvoj mobilnih aplikacij.

Express.js je razvit na modulu vmesne programske opreme Node.js, imenovanem povezati . Povezovalni modul nadalje uporablja http modul za komunikacijo z Node.js. Če torej delate s katerim koli od modulov vmesne programske opreme, ki temelji na povezavi, potem lahko enostavno integrirate Express.js.

Ne le to, nekaj glavnih prednosti Express.js je:

  • Pospeši razvoj spletnih aplikacij
  • Pomaga pri izdelavi mobilnih in spletnih aplikacij enostranskih, večstranskih in hibridnih vrst
  • Express ponuja dva mehanizma za predloge, in sicer Jade in EJS
  • Express sledi arhitekturi Model-View-Controller (MVC)
  • Omogoča integracijo z bazami podatkov, kot so MongoDB, Redis, MySQL
  • Določa napako pri obdelavi vmesne programske opreme
  • Poenostavlja konfiguracijo in prilagajanje, enostavno za aplikacijo.

Z vsemi temi funkcijami Express prevzame odgovornost za zaledni del sklada MEAN. Mean Stack je odprtokodni sklad programske opreme JavaScript, ki se uporablja za izdelavo dinamičnih spletnih mest in spletnih aplikacij. Tukaj, POMENI pomeni M ongoDB, JE xpress.js, TO ngularJS in N ode.js.

Zdaj si oglejmo preprost primer, da razumemo, kako Express.js deluje z Node.js, da olajša naše delo. Toda preden začnete delati s Express.js, ga morate namestiti v svoj sistem.

Za globalno namestitev Express.js lahko uporabite spodnji ukaz:

npm namestite -g express

Če pa ga želite namestiti lokalno v mapo projekta, morate izvesti spodnji ukaz:

npm namestite express --save

Ker smo zaključili z vsemi pripravami, pojdimo zdaj neposredno v praktično izvajanje. Tukaj bom prikazal preprosto aplikacijo za preverjanje pristnosti uporabnika z uporabo Node.js in Express.js.

Node.js Vadnica korak za korakom Razvoj aplikacij z Express.js

Za to bomo potrebovali spodnje datoteke:

  • package.json
  • script.js
  • pogledi
    • index.jade
    • login.jade
    • secure.jade
    • nepooblaščeno.jade
    • dobrodošli.jade
  • lib
    • routes.js

Začnimo torej z package.json .

{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express with Node.js', 'version': '0.0.0', 'scripts': {'start': 'vozlišče script.js '},' motorji ': {' vozlišče ':' ~ 0.4.12 '},' odvisnosti ': {' connect-flash ':' ^ 0.1.1 ',' razčlenjevalnik piškotkov ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}

Nato morate ustvariti 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 strežnik = http.createServer (app) funkcija checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // ne služi / varuje tistim, ki niso prijavljeni, če (req.url = == '/ varno' && (! req.session ||! req.session.authenticated)) {res.render ('nepooblaščeno', {status: 403}) return} naslednji ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({skrivnost: 'primer'}))) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) require ('./ lib / routes.js') (app) app.listen (port) console .log ('Vozlišče posluša na vratih% s', vrata)

Zdaj ustvarite mapo z imenom view, v katero boste dodali žadne datoteke, ki bodo odgovorne za različne poglede strani. Prva datoteka pogleda, ki jo morate ustvariti, je index.jade .

končno in dokončaj v javi
!!! 5 html (lang = 'en') naslov glave Preverjanje uporabnika Primer telesa h1 center Preverjanje pristnosti Demo s pomočjo Express h3 Pojdite na h4 ul li: a (href = '/ secure') Zaščitena vsebina li: a (href = '/ welcome') Pozdravna stran li: a (href = '/ logout') Odjava

Zdaj ustvarite login.jade mapa.

!!! 5 html (lang = 'en') naslov glave Primer hitre avtentikacije body h1 center Prijava v ta primer ekspresne avtentikacije center p Uporaba uporabnik za uporabniško ime in podajo za geslo. form (method = 'post') p label (for = 'username') Vnos e-poštnega naslova (type = 'text', name = 'username', class = 'form-control', id = 'exampleInputPassword1', placeholder = ' E-pošta ', style =' width: 400px ') p srednja nalepka (za =' geslo ') Vnos gesla (type =' password ', name =' password ', class =' ​​form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Submit - vsako sporočilo v bliskavici h4 (style = 'color: red') # {message}

Naslednji korak je ustvariti dobrodošli.jade .

!!! 5 html (lang = 'en') head title Primer avtentifikacije uporabnika body body h1 center Dobrodošli v vadnici Edureka!

Nato ustvarite secure.jade mapa.

!!! 5 html (lang = 'en') naslov glave Express Express Authentication Primer telesa h1 center Pozdravljen, varen uporabnik. p Pomaknite se na ul li: a (href = '/ secure') Zaščitena vsebina li: a (href = '/ welcome') Pozdravna stran li: a (href = '/ logout') Odjava

Zdaj ustvarite nepooblaščeno.jade mapa.

!!! 5 html (lang = 'en') naslov glave Uporabnik Preverjanje pristnosti Primer telo h1 center Nepooblaščeno p Nepooblaščeno za ogled te strani. p Prosim ' nadaljevati

Zdaj morate ustvariti mapo in jo poimenovati lib . Zdaj ustvarite route.js datoteka, ki bo preslikala vse strani.

var util = require ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / dobrodošli ', funkcija (req, res, naslednji) {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) {// tukaj bi morda radi poiskali bazo podatkov ali kaj bolj prilagodljivega, če (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('napaka', 'Uporabniško ime in geslo sta napačna') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}

Če želite to kodo izvršiti sami, jo lahko prenesete od tukaj: Node.js Vadnica PDF .

S tem smo prišli do konca te vaje za Node.js. Upam, da sem uspel razložiti koncepte Node.js od začetka.

Če ste našli to “Vadnico za Node.js 'Ustrezne, preverite Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje te vadnice za Node.js, mi pa se vam bomo oglasili.