Node.js Tutorial - En komplett guide for nybegynnere



Denne veiledningen for Node.js vil snakke om den grunnleggende arkitekturen, arbeidet og forskjellige moduler i Node.js. Det vil også demonstrere en praktisk implementering av Node.js og Express.js.

Hvis du noen gang har hørt om Node.js, vet du kanskje at det er en av de mest fremtredende og kraftige rammene for JavaScript. Siden utgivelsen har den fortsatt å holde kvelertak på IT-markedet. Selv med introduksjonen av nye og livlige som , , Meteor osv., Synes populariteten til Node.js aldri å opphøre. Lurer du på hvorfor? Vel, ved hjelp av denne Node.js-veiledningen vil jeg gi deg et fullstendig innblikk i det. Så gjør deg klar til å bli forelsket i Node.js.

I denne Node.js-veiledningen vil jeg diskutere emnene nedenfor:





Hva er Node.js?

Node.js er et kraftig rammeverk utviklet på Chrome's V8 JavaScript-motor som kompilerer JavaScript direkte til den opprinnelige maskinkoden. Det er et lett rammeverk som brukes til å lage webapplikasjoner på serversiden og utvider JavaScript API til å tilby vanlige funksjoner på serversiden. Den brukes vanligvis til storskala applikasjonsutvikling, spesielt for videostreamingsider, ensidesapplikasjoner og andre webapplikasjoner. Node.js gjør at bruk av en hendelsesdrevet, ikke-blokkerende I / O-modell som gjør det til et riktig valg for de datakrevende sanntidsapplikasjonene.

Som alle andre programmeringsspråk bruker node.js pakker og moduler. Dette er bibliotekene som inneholder forskjellige funksjoner og importeres fra npm (node ​​package manager) til koden vår og brukes i programmene. Noen av hovedfunksjonene som definerer Node.js er oppført nedenfor:



Funksjoner av Node.js

  1. Åpen kilde
    Node.js er en open source framework MIT-lisens som støttes av et stort samfunn. Samfunnet er ganske mye aktivt har bidratt til å legge til nye funksjoner i Node.js applikasjoner.
  2. Enkelt og raskt
    Siden Node.js er bygget på Google Chrome’s V8 JavaScript Engine, kan bibliotekene ha rask kodeutførelse.
  3. Asynkron
    Alle bibliotekene til Node.js er asynkrone, noe som betyr at Node.js-baserte servere aldri venter på at et API skal sende tilbake svaret og gå videre til neste API.
  4. Høy skalerbarhet
    På grunn av hendelsesmekanismen er Node.js svært skalerbar og hjelper serveren i et ikke-blokkerende svar.
  5. Enkelttrådet
    Ved hjelp av looping av hendelser er Node.js i stand til å følge modellen med en tråd. Dette lar et enkelt program håndtere flere forespørsler.
  6. Ingen buffering
    En av hovedfunksjonalitetene til Node.js-applikasjoner er at den aldri buffrer data.
  7. Kryssplattform
    Node.js kan enkelt bygges og distribueres på forskjellige plattformer som Windows, MAC og Linux.

La oss nå gå videre og se hvordan du distribuerer den faktiske koden i nettleseren. Men før det må du laste ned og installere i systemene dine. Du kan henvise til den andre artikkelen min for å vite hele Node.js installasjonsprosess .

Så nå, la oss gå videre i denne Node.js-opplæringen, hvor jeg vil snakke om den viktigste komponenten i Node.js, dvs. npm.

NPM (Node Package Manager)

NPM står for Node Package Manager som som navnet antyder er en pakkebehandling for Node.js-pakker / moduler. Fra Node versjon 0.6.0. videre er npm lagt til som standard i nodeinstallasjonen. Det sparer deg for bryet med å installere npm eksplisitt.



NPM hjelper i utgangspunktet på to måter:

hva er pojo om våren
  1. Tilbyr og vert Online repositories for node.js-pakker / moduler som enkelt kan lastes ned og brukes i våre prosjekter. Du finner dem her: npmjs.com
  2. Tilbyr kommandolinjeverktøyet for å installere forskjellige Node.js-pakker, administrere Node.js-versjoner og avhengigheter av pakkene.

Men nå må du lure på hva disse modulene er og hvordan de hjelper oss med å bygge Node.js-applikasjonene. Vel, i neste del av denne Node.js-opplæringen, vil jeg gi deg et fullstendig innblikk i Node.js-moduler.

Node.js-moduler

Modulene i Node.js representerer forskjellige funksjoner som er samlet i enkle eller flere JS-filer. Disse modulene har en unik sammenheng, og de forstyrrer eller forurenser aldri omfanget av andre moduler.

Disse modulene muliggjør kodenes gjenbrukbarhet og forbedrer brukervennligheten. Node.js gir i utgangspunktet tre typer moduler:

  1. Kjernemoduler
  2. Lokale moduler
  3. Tredjepartsmoduler

Kjernemodul

Siden Node.js er en veldig lett rammeverk, kjernemodulene pakker de absolutte minimumsfunksjonene. Disse modulene lastes vanligvis når Node-prosessen starter utførelsen. Alt du trenger å gjøre er å importere disse kjernemodulene for å bruke dem i koden din.

Nedenfor har jeg listet opp noen av de viktige kjernemodulene.

Kjernemodul Beskrivelse
http Inneholder klasser, metoder og hendelser som kreves for å opprette Node.js HTTP-server
url Inneholder metoder for URL-oppløsning og parsing i Node
spørresnor Inneholder metoder for å håndtere en spørringsstreng av Node
sti Inneholder metoder for å håndtere filstier
fs Inneholder klasser, metoder og hendelser for å jobbe med fil I / O
Nyttig Inneholder verktøyfunksjoner som kan være nyttige for programmerere

Du kan laste kjernemodulen din ved hjelp av koden nedenfor:

var module = krever ('module_name')

La oss nå se hva som er ‘lokale moduler’.

Lokale moduler

De lokale modulene til Node.js er egendefinerte moduler som opprettes lokalt av bruker / utvikler i applikasjonen. Disse modulene kan omfatte forskjellige funksjoner samlet i forskjellige filer og mapper som enkelt kan distribueres i Node.js-fellesskapet ved hjelp av NPM.

Disse modulene lastes på samme måte som kjernemoduler. La oss vise deg hvordan du gjør det ved hjelp av et grunnleggende eksempel.

Opprett din egendefinerte / lokale module.js-fil

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

Ta med modulfilen din i hovedprogramfilen.

var myLogModule = krever ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Utdanning')

Nå kan du utføre disse filene ved å bruke kommandoen nedenfor:

node application.js

La meg nå vise deg hva som er eksterne moduler.

Eksterne moduler

Du kan bruke den eksterne eller 3rdfestmoduler bare ved å laste dem ned via NPM. Disse modulene er generelt utviklet av andre utviklere og er gratis å bruke. Få av de beste eksterne modulene er express, react, gulp, mongoose, mokka osv.

Globalt lasting av tredjepartsmoduler:

npm install --g

Inkluder modulfilen din i hovedprogramfilen:

npm install - lagre

JSON-fil

De package.json-fil i Node.js er hjertet i hele applikasjonen. Det er i utgangspunktet manifestfilen som inneholder metadata for prosjektet. Dermed blir forståelse og arbeid med denne filen veldig viktig for en vellykket Node-prosjektutvikling.

Package.json-filen består vanligvis av metadata for applikasjonen, som videre er kategorisert i under to kategorier:

  1. Identifisere metadataegenskaper: Dette består av egenskaper som prosjektnavnet, gjeldende modulversjon, lisens, forfatter av prosjektet, prosjektbeskrivelse etc.
  1. Skriver direkte til filen: Du kan skrive den nødvendige informasjonen direkte i filen package.json og inkludere den i prosjektet ditt.

Nå har du allerede kjent med de forskjellige komponentene i Node JS-applikasjonen. I neste del av denne Node.js-opplæringen vil jeg dele noen grunnleggende om Node Js slik at vi kan begynne med hendene på.

Grunnleggende om Node.js

Siden Node.js er et JavaScript-rammeverk, bruker det JavaScript-syntaksen. Hvis du vil lære JavaScript i detalj, kan du referere til dette . Foreløpig vil jeg pusse opp deg med noen grunnleggende Node.js som:

Datatyper

Som alle andre programmeringsspråk har Node.js forskjellige datatyper, som videre kategoriseres i primitive og ikke-primitive datatyper.

Primitive datatyper er:

  1. String
  2. Antall
  3. Boolsk
  4. Null
  5. Udefinert

Ikke-primitive datatyper er:

  1. Gjenstand
  2. Dato
  3. Array

Variabler

Variabel er enheter som har verdier som kan variere i løpet av et program. For å opprette en variabel i Node.js, må du bruke et reservert nøkkelord var. Du trenger ikke å tilordne en datatype, da kompilatoren automatisk velger den.

Syntaks:

var varName = verdi

Operatører

Node.js støtter operatørene nedenfor:

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

Funksjoner

Funksjoner i Node.js er en blokk med kode som har et navn og er skrevet for å oppnå en bestemt oppgave. Du må bruke søkeordfunksjonen for å opprette den. En funksjon er vanligvis en totrinnsprosess. Den første definerer funksjonen, og den andre påkaller den. Nedenfor er syntaksen for å opprette og påkalle en funksjon:

Eksempel:

// Definere en funksjonsfunksjon display_Name (fornavn, etternavn) {alarm ('Hei' + fornavn + '' + etternavn)} // Påkaller funksjonen displaynavn ('Park', 'Jimin')

Objekter

Et objekt er en ikke-primitiv datatype som kan inneholde flere verdier når det gjelder egenskaper og metoder. Node.js-objekter er frittstående enheter, da det ikke er noe konsept om klasse. Du kan lage et objekt på to måter:

  1. Bruke Objekt bokstavelig
  2. Bruke objektkonstruktør

Eksempel:

// objekt med egenskaper og metode var ansatt = {// egenskaper firstName: 'Minho', etternavn: 'Choi', alder: 35, lønn: 50000, // method getFullName: function () {return this.firstName + '' + this.lastName}}

Filsystem

For å få tilgang til det fysiske filsystemet bruker Node.js fs modul som i utgangspunktet tar seg av alle asynkrone og synkrone fil I / O-operasjoner. Denne modulen importeres ved hjelp av kommandoen nedenfor:

var fs = krever ('fs')

Noen av den generelle bruken for filsystemmodulene er:

  • Les filer
    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 ()}}}. Lytt (8080)
  • Lag filer
    1. appendFile ()
    2. åpen()
    3. writeFile ()
  • Oppdater filer
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Slett filer
    1. fs.unlink ()
  • Gi nytt navn til filer
    1. fs.rename ()

Så med disse kommandoene kan du stort sett utføre alle nødvendige operasjoner på filene dine. La oss nå gå videre med denne Node.js-veiledningen og se hva som er hendelser og hvordan de håndteres i Node.js.

arrangementer

Som jeg allerede har nevnt, er Node.js-applikasjoner enkelttrådede og hendelsesdrevne. Node.js støtter samtidighet ettersom den er hendelsesdrevet, og bruker dermed konsepter som hendelser og tilbakeringinger. Asynk-funksjonen kaller hjelper Node.js med å opprettholde samtidighet i hele applikasjonen.

I utgangspunktet er det i en Node.js-applikasjon en hovedsløyfe som venter og lytter etter hendelser, og når en hendelse er fullført, starter den umiddelbart en tilbakeringingsfunksjon.

hva er de 6 måtene å bruke dette nøkkelordet på

Diagrammet nedenfor viser hvordan hendelsene drives i Node.js.

Trådmodell - Node.js opplæring - Edureka

En ting du må merke deg her er at selv om hendelser ligner tilbakeringingsfunksjoner, men forskjellen ligger i funksjonaliteten. Når en asynkron funksjon returnerer resultatene, påkalles tilbakekall på den annen side. Håndteringshåndtering fungerer helt på observatørmønsteret. Og i Node.js kalles metoder som lytter til hendelsene observatører. I det øyeblikket en hendelse utløses, starter lytterfunksjonen automatisk å utføre. Eventmoduler og EventEmitter-klasse gir flere innebygde hendelser som brukes til å binde hendelser med hendelseslyttere. Nedenfor har jeg skrevet ned syntaksen for det.

Bindende begivenhet til en hendelseslytter

// Importer hendelsesmodul var my_Events = krever ('events') // Opprett et eventEmitter-objekt var my_EveEmitter = nytt my_Events.EventEmitter ()

Bindende hendelsesbehandler til et arrangement

// Bindende hendelse og hendelsesbehandler my_EveEmitter.on ('eventName', eventHandler)

Avfyring av en begivenhet

// Avfyr et arrangement my_EveEmitter.emit ('eventName')

La oss nå prøve å implementere de tingene jeg har diskutert i denne Node.js hendelsesdelen.Koden nedenfor viser en enkel representasjon av hendelsesutførelse i Node.js.

var emitter = krever ('events'). EventEmitter-funksjon 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', function ( info) {console.log ('Starter prosessen for' + info)}) it.on ('AfterProcess', function (info) {console.log ('Finishing processing for' + info)

I neste del av denne Node.js-opplæringen vil jeg gi deg innsikt i en av de viktigste modulene i Node.js kalt HTTP-modulen.

HTTP-modul

Vanligvis brukes Node.js til å utvikle serverbaserte applikasjoner. Men ved hjelp av modulen kan du enkelt lage webservere som kan svare på klientforespørslene. Dermed er det også referert til Web Module og gir moduler som HTTP og forespørsel som letter Node.js i behandlingen av serverforespørslene.

Du kan enkelt inkludere denne modulen i Node.js-applikasjonen bare ved å skrive koden nedenfor:

var http = krever ('http')

Nedenfor har jeg skrevet en kode som viser hvordan en webserver er utviklet i Node.js.

bruk av pakker i java
// kaller http bibliotek var http = krever ('http') var url = krever ('url') // oppretter server var server = http.createServer (funksjon (req, res) {// innstilling av innholdsoverskrift res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true). Spørring var txt = q.year + '' + q.month // send streng til svar res.end (txt)}) // tilordne 8082 som serverlyttingsport server.listen (8082)

I neste del av denne Node.js-opplæringen vil jeg snakke om Express.js som er mye brukt for utvikling av websøknad på serversiden.

Express.js

Express.js er et rammeverk som er bygget på toppen av Node.js som gjør det lettere å administrere datastrømmen mellom serveren og rutene i server-applikasjonene. Det er et lett og fleksibelt rammeverk som gir et bredt spekter av funksjoner som kreves for nettet, samt utvikling av mobilapplikasjoner.

Express.js er utviklet på mellomvaremodulen til Node.js kalt koble . Tilkoblingsmodulen bruker videre http modul for å kommunisere med Node.js. Dermed, hvis du jobber med noen av de koble baserte mellomvaremodulene, kan du enkelt integrere med Express.js.

Ikke bare dette, få av de største fordelene med Express.js er:

  • Gjør utvikling av webapplikasjoner raskere
  • Hjelper med å bygge mobil- og nettapplikasjon av ensidige, flersides og hybridtyper
  • Express tilbyr to malmotorer, nemlig Jade og EJS
  • Express følger Model-View-Controller (MVC) -arkitekturen
  • Gjør integrasjon med databaser som MongoDB, Redis, MySQL
  • Definerer en feilhåndtering av mellomvare
  • Forenkler konfigurasjon og tilpasning enkelt for applikasjonen.

Med alle disse funksjonene tar Express ansvaret for backend-delen i MEAN-stakken. Mean Stack er JavaScript-programvarestakken med åpen kildekode som brukes til å bygge dynamiske nettsteder og webapplikasjoner. Her, MENER står for M ongoDB, ER xpress.js, TIL ngularJS, og N ode.js.

La oss nå se et enkelt eksempel for å forstå hvordan Express.js fungerer med Node.js for å lette arbeidet vårt. Men før du begynner å jobbe med Express.js, må du installere det på systemet ditt.

For å installere Express.js globalt kan du bruke kommandoen nedenfor:

npm install -g express

Eller hvis du vil installere det lokalt i prosjektmappen, må du utføre kommandoen nedenfor:

npm install express --save

Siden vi er ferdige med alle forberedelsene, la oss nå hoppe direkte inn i praktisk implementering. Her skal jeg vise en enkel brukerautentiseringsapplikasjon ved hjelp av Node.js og Express.js.

Node.js opplæring trinnvis applikasjonsutvikling med Express.js

For dette trenger vi filene nedenfor:

  • pakke.json
  • script.js
  • utsikt
    • index.jade
    • login.jade
    • secure.jade
    • uautorisert.jade
    • velkommen.jade
  • lib
    • routes.js

Så, la oss begynne 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 '},' avhengigheter ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}

Deretter må du opprette script.js .

var express = krever ('express') var http = krever ('http') var port = 8999 var app = express () const flash = krever ('connect-flash') var cookieParser = krever ('cookie-parser') var server = http.createServer (app) function checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // ikke server / sikr til de som ikke er pålogget hvis (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('uautorisert', {status: 403}) return} neste ()} 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 ('view engine', 'jade') app.set ('view options', {layout: false}) require ('./ lib / routes.js') (app) app.listen (port) console .log ('Node listening on port% s', port)

Opprett nå en mappevisning, der du vil legge til jade-filene som vil være ansvarlige for forskjellige sidevisninger. Den første visningsfilen du trenger å opprette er index.jade .

!!! 5 html (lang = 'no') head title Brukergodkjenning Eksempel body h1 center Authentication Demo using Express h3 Naviger til h4 ul li: a (href = '/ secure') Sikkert innhold li: a (href = '/ welcome') Velkomstside li: a (href = '/ logout') Logout

Lag nå login.jade fil.

!!! 5 html (lang = 'no') head title Express authentication example body h1 center Logg på dette Express-autentisering eksempel center p Bruk bruker for brukernavnet og sende for passordet. skjema (metode = 'post') p-etikett (for = 'brukernavn') E-postadresseinngang (type = 'tekst', navn = 'brukernavn', klasse = 'skjema-kontroll', id = 'eksempelInputPassword1', plassholder = ' Email ', style =' width: 400px ') p center label (for =' password ') Password input (type =' password ', name =' password ', class =' ​​form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Send inn - hver melding i flash h4 (style = 'color: red') # {message}

Neste trinn er å lage velkommen.jade .

!!! 5 html (lang = 'no') head title Brukergodkjenning Eksempel body h1 center Welcome To The Edureka Tutorial!

Deretter oppretter du secure.jade fil.

!!! 5 html (lang = 'no') head title Express Authentication Eksempel body h1 center Hei, sikker bruker. p Naviger til ul li: a (href = '/ secure') Sikkert innhold li: a (href = '/ welcome') Velkomstside li: a (href = '/ logout') Logout

Lag nå uautorisert.jade fil.

!!! 5 html (lang = 'no') head title Brukergodkjenning Eksempel body h1 center Uautorisert p Du er ikke autorisert til å se denne siden. p Vær så snill ' å fortsette

Nå må du opprette en mappe og gi den navnet lib . Lag nå en route.js fil som vil kartlegge alle sidene.

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, neste) {// du vil kanskje gjøre en databaseoppslag eller noe mer 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', 'Brukernavn og passord er feil') res. redirect ('/ login')}} app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}

Nå hvis du vil utføre denne koden på egen hånd, kan du laste den ned herfra: Node.js opplærings-PDF .

Med dette kommer vi til en slutt på denne Node.js-opplæringen. Jeg håper jeg var i stand til å forklare begrepene Node.js fra grunnen av.

Hvis du fant denne “Node.js Tutorial ' relevant, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne Node.js-opplæringen, så kommer vi tilbake til deg.