Node.js tutorial - En komplet guide til begyndere



Denne Node.js-tutorial fortæller om den grundlæggende arkitektur, arbejde og forskellige moduler i Node.js. Det vil også demonstrere en praktisk implementering af Node.js og Express.js.

Hvis du nogensinde har hørt om Node.js, ved du måske, at det er en af ​​de mest fremtrædende og kraftfulde rammer for JavaScript. Siden frigivelsen har det fortsat holdt sit kvælningsgreb på it-markedet. Selv med introduktionen af ​​nyt og levende synes godt om , , Meteor osv., Synes populariteten af ​​Node.js aldrig at ophøre. Gad vide hvorfor? Nå, ved hjælp af denne Node.js-tutorial giver jeg dig et komplet indblik i det. Så gør dig klar til at blive forelsket i Node.js.

I denne Node.js-vejledning vil jeg diskutere nedenstående emner:





Hvad er Node.js?

Node.js er en stærk ramme udviklet på Chrome's V8 JavaScript-motor der kompilerer JavaScript direkte til den indbyggede maskinkode. Det er en let ramme, der bruges til at oprette serverapplikationer på serversiden og udvider JavaScript API til at tilbyde sædvanlige server-side-funktioner. Det bruges generelt til storskala applikationsudvikling, især til videostreamingsider, applikationer til en side og andre webapplikationer. Node.js gør brug af en hændelsesdrevet, ikke-blokerende I / O-model, der gør det til et rigtigt valg til de datakrævende realtidsapplikationer.

Som alle andre programmeringssprog bruger node.js pakker og moduler. Dette er de biblioteker, der indeholder forskellige funktioner og importeres fra npm (node ​​package manager) til vores kode og bruges i programmerne. Nogle af de vigtigste funktioner, der definerer Node.js, er angivet nedenfor:



Funktioner i Node.js

  1. Åben kilde
    Node.js er en open source framework MIT-licens, der understøttes af et stort samfund. Dets samfund er stort set aktivt har bidraget til at tilføje nye muligheder til Node.js applikationer.
  2. Enkel og hurtig
    Da Node.js er bygget på Google Chrome's V8 JavaScript Engine, er dets biblioteker i stand til hurtig kodeudførelse.
  3. Asynkron
    Alle bibliotekerne i Node.js er asynkrone, hvilket betyder, at de Node.js-baserede servere aldrig venter på, at en API sender svaret tilbage og går videre til næste API.
  4. Høj skalerbarhed
    På grund af begivenhedsmekanismen er Node.js meget skalerbar og hjælper serveren med et ikke-blokerende svar.
  5. Enkelt gevind
    Ved hjælp af hændelsessløjfe er Node.js i stand til at følge modellen med en enkelt gevind. Dette lader et enkelt program håndtere flere anmodninger.
  6. Ingen buffering
    En af de vigtigste funktioner i Node.js-applikationer er, at den aldrig buffrer data.
  7. Tværplatform
    Node.js kan let bygges og implementeres på forskellige platforme som Windows, MAC og Linux.

Lad os nu gå videre og se, hvordan du implementerer den aktuelle kode i browseren. Men inden det skal du downloade og installere i dine systemer. Du kan henvise til min anden artikel for at vide det komplette Node.js installationsproces .

Så nu, lad os gå videre i denne Node.js-tutorial, hvor jeg vil tale om den vigtigste komponent i Node.js dvs. npm.

NPM (Node Package Manager)

NPM står for Node Package Manager, som som navnet antyder er en pakkehåndtering til Node.js-pakker / moduler. Fra Node version 0.6.0. videre er npm tilføjet som standard i nodeinstallationen. Det sparer dig for besværet med at installere npm eksplicit.



NPM hjælper dybest set på to måder:

servicenow tutorial for begyndere pdf
  1. Tilbyder og er vært for online arkiver til node.js-pakker / moduler, som let kan downloades og bruges i vores projekter. Du kan finde dem her: npmjs.com
  2. Tilbyder kommandolinjeværktøjet til at installere forskellige Node.js-pakker, administrere Node.js-versioner og afhængigheder af pakkerne.

Men nu må du undre dig over, hvad disse moduler er, og hvordan hjælper de os med at opbygge Node.js-applikationerne. Nå, i det næste afsnit af denne Node.js-tutorial giver jeg dig et komplet indblik i Node.js-moduler.

Node.js-moduler

Modulerne i Node.js repræsenterer forskellige funktioner, der er samlet i enkelte eller flere JS-filer. Disse moduler har en unik kontekst, og derfor forstyrrer de aldrig eller forurener omfanget af andre moduler.

Disse moduler muliggør genanvendelighed af koder og forbedrer brugervenligheden. Node.js leverer grundlæggende tre typer moduler:

  1. Kernemoduler
  2. Lokale moduler
  3. Tredjepartsmoduler

Kernemodul

Da Node.js er en meget letvægt ramme, bundter kernemodulerne de absolutte minimumsfunktioner. Disse moduler indlæses normalt, når Node-processen starter dens udførelse. Alt hvad du skal gøre er at importere disse kernemoduler for at kunne bruge dem i din kode.

Nedenfor har jeg listet nogle få af de vigtige kernemoduler.

Kernemodul Beskrivelse
http Indeholder klasser, metoder og begivenheder, der kræves for at oprette Node.js HTTP-server
url Indeholder metoder til URL-opløsning og parsing i Node
forespørgselsstreng Indeholder metoder til at håndtere en forespørgselsstreng af Node
sti Indeholder metoder til håndtering af filstier
fs Indeholder klasser, metoder og begivenheder til at arbejde med fil I / O
Nyttig Indeholder hjælpefunktioner, der kan være nyttige for programmører

Du kan indlæse dit kernemodul ved hjælp af nedenstående kode:

var module = kræve ('module_name')

Lad os nu se, hvad der er 'lokale moduler'.

Lokale moduler

De lokale moduler i Node.js er tilpassede moduler, der oprettes lokalt af bruger / udvikler i applikationen. Disse moduler kan omfatte forskellige funktioner samlet i forskellige filer og mapper, som let kan distribueres i Node.js-samfundet ved hjælp af NPM.

Disse moduler indlæses på samme måde som kernemoduler. Lad os vise dig, hvordan du gør det ved hjælp af et grundlæggende eksempel.

Opret din brugerdefinerede / lokale module.js-fil

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

Inkluder din modulfil i din hovedapplikationsfil.

var myLogModule = kræve ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Uddannelse')

Nu kan du udføre disse filer ved hjælp af kommandoen nedenfor:

node application.js

Lad mig nu vise dig, hvad der er eksterne moduler.

Eksterne moduler

Du kan bruge den eksterne eller 3rdpartimoduler kun ved at downloade dem via NPM. Disse moduler er generelt udviklet af andre udviklere og er gratis at bruge. Få af de bedste eksterne moduler er express, react, gulp, mongoose, mokka osv.

Globalt indlæsning af tredjepartsmoduler:

npm installation - g

Inkluder din modulfil i din hovedapplikationsfil:

npm install - gem

JSON-fil

Det package.json-fil i Node.js er hjertet i hele applikationen. Det er grundlæggende manifestfilen, der indeholder metadata for projektet. Således bliver forståelse og arbejde med denne fil meget vigtig for en vellykket Node-projektudvikling.

Package.json-filen består normalt af applikationens metadata, som yderligere er kategoriseret i nedenstående to kategorier:

  1. Identificering af metadataegenskaber: Dette består af egenskaber som projektnavnet, den aktuelle modulversion, licens, projektforfatter, projektbeskrivelse osv.
  1. Skriver direkte til filen: Du kan skrive de nødvendige oplysninger direkte i filen package.json og medtage dem i dit projekt.

Nu har du allerede gjort dig bekendt med de forskellige komponenter i Node JS-applikationen. I det næste afsnit af denne Node.js-vejledning deler jeg nogle grundlæggende Node Js-baser, så vi kan starte med hånden på.

Grundlæggende om Node.js

Da Node.js er en JavaScript-ramme, bruger den JavaScript-syntaksen. Hvis du vil lære JavaScript i detaljer, kan du henvise til dette . For nu vil jeg pusse dig op med nogle Node.js-grundlæggende som:

Datatyper

Som ethvert andet programmeringssprog har Node.js forskellige datatyper, som yderligere er kategoriseret i primitive og ikke-primitive datatyper.

Primitive datatyper er:

  1. Snor
  2. Nummer
  3. Boolsk
  4. Nul
  5. Udefineret

Ikke-primitive datatyper er:

hvad er en keyerror i python
  1. Objekt
  2. Dato
  3. Array

Variabler

Variabel er enheder, der har værdier, som kan variere i løbet af et program. For at oprette en variabel i Node.js skal du bruge et reserveret nøgleord var. Du behøver ikke at tildele en datatype, da compileren automatisk vælger den.

Syntaks:

var varName = værdi

Operatører

Node.js understøtter nedenstående operatører:

Operatørtype Operatører
Aritmetik +, -, /, *,%, ++, -
Opgave =, + =, - =, * =, / =,% =
Betinget =?
Sammenligning ==, === ,! = ,! ==,>,> =,<, <=,
Logisk &&, || ,!
Bitvis &, |, ^, ~,<>, >>>

Funktioner

Funktioner i Node.js er en blok kode, der har et navn og er skrevet for at opnå en bestemt opgave. Du skal bruge nøgleordsfunktionen til at oprette den. En funktion er generelt en totrins proces. Først defineres funktionen, og den anden påkalder den. Nedenfor er syntaksen for at oprette og påkalde en funktion:

Eksempel:

// Definering af en funktionsfunktion display_Name (fornavn, efternavn) {alarm ('Hej' + fornavn + '' + efternavn)} // Påkald af funktionens displaynavn ('Park', 'Jimin')

Objekter

Et objekt er en ikke-primitiv datatype, der kan indeholde flere værdier med hensyn til egenskaber og metoder. Node.js-objekter er enkeltstående enheder, da der ikke er noget koncept for klasse. Du kan oprette et objekt på to måder:

  1. Brug af bogstaveligt objekt
  2. Brug af objektkonstruktør

Eksempel:

// objekt med egenskaber og metode var medarbejder = {// egenskaber fornavn: 'Minho', efternavn: 'Choi', alder: 35, løn: 50000, // metode getFullName: funktion () {returner this.firstName + '' + this.lastName}}

Filsystem

For at få adgang til det fysiske filsystem benytter Node.js sig af fs modul, som dybest set tager sig af alle asynkrone og synkrone fil I / O-operationer. Dette modul importeres ved hjælp af nedenstående kommando:

var fs = kræve ('fs')

Nogle af de generelle anvendelser til filsystemmodulerne er:

  • Læs filer
    1. fs.readFile ()
var http = kræver ('http') var fs = kræver ('fs') http.createServer (funktion (req, res) {fs.readFile ('script.txt', funktion (err, data) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}. Lyt (8080)
  • Opret filer
    1. appendFile ()
    2. åben()
    3. skrivFil ()
  • Opdater filer
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Slet filer
    1. fs.unlink ()
  • Omdøb filer
    1. fs.rename ()

Så med disse kommandoer kan du stort set udføre alle de nødvendige operationer på dine filer. Lad os nu gå videre med denne Node.js-vejledning og se, hvad der er begivenheder, og hvordan de håndteres i Node.js.

Begivenheder

Som jeg allerede har nævnt, er Node.js-applikationer enkelt gevind og hændelsesdrevet. Node.js understøtter samtidighed, da den er hændelsesdrevet, og bruger således begreber som begivenheder og tilbagekald. Async-funktionens opkald hjælper Node.js med at opretholde samtidighed i hele applikationen.

Dybest set er der i en Node.js-applikation en hovedsløjfe, der venter og lytter til begivenheder, og når en begivenhed er afsluttet, starter den straks en tilbagekaldsfunktion.

Nedenstående diagram repræsenterer, hvordan begivenhederne drives i Node.js.

Trådmodel - Node.js vejledning - Edureka

En ting, som du skal bemærke her, er, at selvom begivenheder ligner tilbagekaldsfunktioner, men forskellen ligger i deres funktionalitet. Når en asynkron funktion returnerer sine resultater, kaldes tilbagekald på den anden side af begivenhedshåndtering fungerer fuldstændigt på observatørmønsteret. Og i Node.js kaldes metoder, der lytter til begivenhederne, observatører. I det øjeblik en begivenhed udløses, begynder dens lytterfunktion automatisk at blive udført. Eventmoduler og EventEmitter-klasse giver flere indbyggede begivenheder, som bruges til at binde begivenheder med begivenhedslyttere. Nedenfor har jeg nedskrevet syntaksen for det.

Bindende begivenhed til en begivenhedslytter

// Importer begivenhedsmodul var my_Events = kræv ('events') // Opret et eventEmitter-objekt var my_EveEmitter = nyt my_Events.EventEmitter ()

Bindende begivenhedshåndterer til en begivenhed

// Bindende begivenhed og begivenhedshåndterer my_EveEmitter.on ('eventName', eventHandler)

Fyring af en begivenhed

// Afsked en begivenhed my_EveEmitter.emit ('eventName')

Lad os nu prøve at implementere de ting, som jeg har diskuteret i denne sektion Node.js-begivenhed.Nedenstående kode viser en simpel gengivelse af begivenhedsudførelse i Node.js.

var emitter = kræver ('events'). EventEmitter-funktion iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Processing Iteration:' + i) emt.emit ('AfterProcess', i)}}, 5000) returner emt} var it = iterateProcessor (5) it.on ('BeforeProcess', funktion ( info) {console.log ('Start af processen for' + info)}) it.on ('AfterProcess', funktion (info) {console.log ('Afslutning af behandling for' + info)

I det næste afsnit af denne Node.js-vejledning giver jeg dig indsigt i et af de vigtigste moduler i Node.js kaldet HTTP-modulet.

HTTP-modul

Generelt bruges Node.js til udvikling af serverbaserede applikationer. Men ved hjælp af modulet kan du nemt oprette webservere, der kan svare på klientens anmodninger. Således henvises det også til Webmodul og leverer moduler som HTTP og anmodning, der letter Node.js i behandlingen af ​​serveranmodningerne.

Du kan nemt inkludere dette modul i din Node.js-applikation ved blot at skrive nedenstående kode:

var http = kræve ('http')

Nedenfor har jeg skrevet en kode, der viser, hvordan en webserver udvikles i Node.js.

// kalder http-bibliotek var http = kræver ('http') var url = kræver ('url') // oprettelse af server var server = http.createServer (funktion (req, res) {// indstilling af indholdsoverskrift res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true). Forespørgsel var txt = q.year + '' + q.month // send streng til svar res.end (txt)}) // tildeler 8082 som server lytter port server.listen (8082)

I det næste afsnit af denne Node.js-selvstudie vil jeg tale om Express.js, som bruges meget til server-side webapplikationsudvikling.

Express.js

Express.js er en ramme, der er bygget oven på Node.js, der letter styringen af ​​datastrømmen mellem serveren og ruterne i applikationer på serversiden. Det er en let og fleksibel ramme, der giver en bred vifte af funktioner, der kræves til internettet såvel som udvikling af mobilapplikationer.

Express.js er udviklet på det mellemvaremodul, der kaldes Node.js Opret forbindelse . Forbindelsesmodulet gør yderligere brug af http modul til at kommunikere med Node.js. Således, hvis du arbejder med et af de forbindelsesbaserede middlewaremoduler, kan du nemt integrere med Express.js.

Ikke kun dette, få af de største fordele ved Express.js er:

  • Gør udviklingen af ​​webapplikationer hurtigere
  • Hjælper med at opbygge mobil- og webapplikationer af enkeltsider, flersides og hybridtyper
  • Express leverer to skabelonmotorer, nemlig Jade og EJS
  • Express følger Model-View-Controller (MVC) -arkitekturen
  • Gør integration med databaser som MongoDB, Redis, MySQL
  • Definerer en fejlhåndtering af middleware
  • Forenkler konfiguration og tilpasning let for applikationen.

Med alle disse funktioner tager Express ansvaret for backend-delen i MEAN-stakken. Mean Stack er den open source JavaScript-softwarestak, der bruges til at opbygge dynamiske websteder og webapplikationer. Her, BETYDE står for M ongoDB, ER xpress.js, TIL ngularJS, og N ode.js.

Lad os nu se et simpelt eksempel for at forstå, hvordan Express.js fungerer med Node.js for at lette vores arbejde. Men inden du begynder at arbejde med Express.js, skal du installere det i dit system.

For at installere Express.js globalt kan du bruge nedenstående kommando:

npm install -g express

Eller hvis du vil installere det lokalt i din projektmappe, skal du udføre nedenstående kommando:

npm installer express --save

Da vi er færdige med alle forberedelserne, skal vi nu springe direkte ind i praktisk implementering. Her viser jeg et simpelt brugergodkendelsesprogram ved hjælp af Node.js og Express.js.

hvad er forskellen mellem en abstrakt klasse og en grænseflade?

Node.js vejledning trin for trin applikationsudvikling med Express.js

Til dette har vi brug for nedenstående filer:

  • pakke.json
  • script.js
  • visninger
    • index.jade
    • login.jade
    • sikker.jade
    • uautoriseret.jade
    • velkommen.jade
  • lib
    • routes.js

Så lad os starte med pakke.json .

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

Derefter skal du oprette script.js .

var express = kræve ('express') var http = kræve ('http') var port = 8999 var app = express () const flash = kræve ('connect-flash') var cookieParser = kræve ('cookie-parser') var server = http.createServer (app) -funktion checkAuth (req, res, næste) {console.log ('checkAuth' + req.url) // serverer / sikres ikke til dem, der ikke er logget ind, hvis (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('uautoriseret', {status: 403}) returnere} næste ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ((hemmelighed: 'eksempel'))) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) kræver ('./ lib / routes.js') (app) app.listen (port) konsol .log ('Node lytter på port% s', port)

Opret nu en mappe med visning, hvorunder du tilføjer de jade-filer, der er ansvarlige for forskellige sidevisninger. Den første visningsfil, du skal oprette, er index.jade .

!!! 5 html (lang = 'da') head title Brugergodkendelse Eksempel body h1 center Authentication Demo ved hjælp af Express h3 Naviger til h4 ul li: a (href = '/ secure') Sikkert indhold li: a (href = '/ velkomst') Velkomstside li: a (href = '/ logout') Logout

Opret nu login.jade fil.

!!! 5 html (lang = 'da') hovedtitel Ekspresgodkendelseseksempel body h1 center Log ind på dette Express-godkendelseseksempel center p Brug bruger for brugernavnet og passere for adgangskoden. form (metode = 'post') p etiket (for = 'brugernavn') E-mail-adresseindgang (type = 'tekst', navn = 'brugernavn', klasse = 'form-kontrol', id = 'eksempelInputPassword1', pladsholder = ' E-mail ', style =' width: 400px ') p centeretiket (for =' password ') Adgangskodeindgang (type =' password ', name =' password ', class =' ​​form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Send - hver meddelelse i flash h4 (style = 'color: red') # {message}

Næste trin er at oprette velkommen.jade .

!!! 5 html (lang = 'da') head title Brugergodkendelse Eksempel body h1 center Velkommen til Edureka Tutorial!

Opret derefter sikker.jade fil.

!!! 5 html (lang = 'da') hovedtitel Express Authentication Eksempel body h1 center Hej, sikker bruger. p Naviger til ul li: a (href = '/ sikker') Sikkert indhold li: a (href = '/ velkommen') Velkomstside li: a (href = '/ logout') Log ud

Opret nu uautoriseret.jade fil.

!!! 5 html (lang = 'da') head title Brugergodkendelse Eksempel body h1 center Uautoriseret p Du er ikke autoriseret til at se denne side. p venligst ' at fortsætte

Nu skal du oprette en mappe og navngive den lib . Opret nu en route.js fil, der kortlægger alle siderne.

var util = kræve ('util') module.exports = funktion (app) {app.get ('/', funktion (req, res, næste) {res.render ('index')}) app.get (' / velkommen ', funktion (req, res, næste) {res.render (' velkommen ')}) app.get (' / sikker ', funktion (req, res, næste) {res.render (' sikker ')} ) app.get ('/ login', funktion (req, res, næste) {res.render ('login', {flash: req.flash ()})} app.post ('/ login', funktion ( req, res, næste) {// du vil muligvis foretage en databaseopslag eller noget mere skalerbart her, hvis (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} ellers {req.flash ('error', 'Brugernavn og adgangskode er forkert') res. omdirigere ('/ login')}} app.get ('/ logout', funktion (req, res, næste) {slet req.session.authenticated res.redirect ('/')})}

Hvis du nu vil udføre denne kode alene, kan du downloade den herfra: Node.js tutorial PDF .

Med dette kommer vi til en afslutning på denne Node.js-tutorial. Jeg håber, jeg var i stand til at forklare begreberne Node.js fra bunden.

Hvis du fandt denne “Node.js Tutorial ”Relevant, tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne Node.js-tutorial, og vi vender tilbage til dig.