Node.js Tutorial - En komplett guide för nybörjare

Denna Node.js-handledning kommer att prata om den grundläggande arkitekturen, arbetet och olika moduler för Node.js. Det kommer också att demonstrera en praktisk implementering av Node.js och Express.js.

Om du någonsin har hört talas om Node.js kanske du vet att det är en av de mest framstående och kraftfulla ramarna för JavaScript. Sedan det släpptes har det fortsatt att behålla sitt stryp på IT-marknaden. Även med introduktionen av nya och levande tycka om , , Meteor etc. verkar Node.js popularitet aldrig upphöra. Undrar varför? Tja, med hjälp av denna Node.js-handledning kommer jag att ge dig en fullständig inblick i den. Så gör dig redo att bli kär i Node.js.

I denna Node.js-handledning kommer jag att diskutera nedanstående ämnen:





Vad är Node.js?

Node.js är ett kraftfullt ramverk utvecklat på Chrome's V8 JavaScript-motor som sammanställer JavaScript direkt i den inbyggda maskinkoden. Det är en lätt ram som används för att skapa webbapplikationer på serversidan och utökar JavaScript API för att erbjuda vanliga serverfunktioner. Den används vanligtvis för storskalig applikationsutveckling, särskilt för videostreamingwebbplatser, en-sidapplikation och andra webbapplikationer. Node.js gör användning av en händelsestyrd, icke-blockerande I / O-modell som gör det till ett rätt val för de datakrävande realtidsapplikationerna.

Som alla andra programmeringsspråk använder node.js paket och moduler. Det här är biblioteken som innehåller olika funktioner och importeras från npm (nodpakethanterare) till vår kod och används i programmen. Några av de viktigaste funktionerna som definierar Node.js listas nedan:



Funktioner i Node.js

  1. Öppen källa
    Node.js är en MIT-licens med öppen källkod som stöds av en enorm community. Dess community är ganska mycket aktiv har bidragit till att lägga till nya funktioner i Node.js-applikationer.
  2. Enkelt och snabbt
    Eftersom Node.js är byggt på Google Chromes V8 JavaScript-motor kan dess bibliotek snabbt köra kod.
  3. Asynkron
    Alla bibliotek i Node.js är asynkrona vilket innebär att de Node.js-baserade servrarna aldrig väntar på att ett API skickar tillbaka svaret och går vidare till nästa API.
  4. Hög skalbarhet
    På grund av händelsemekanismen är Node.js mycket skalbar och hjälper servern i ett icke-blockerande svar.
  5. Engängad
    Med hjälp av event looping kan Node.js följa modellen med en tråd. Detta låter ett enda program hantera flera förfrågningar.
  6. Ingen buffring
    En av de viktigaste funktionerna i Node.js-applikationer är att den aldrig buffrar data.
  7. Tvärplattform
    Node.js kan enkelt byggas och distribueras på olika plattformar som Windows, MAC och Linux.

Låt oss nu gå vidare och se hur du distribuerar den faktiska koden i webbläsaren. Men innan det måste du ladda ner och installera i dina system. Du kan hänvisa till min andra artikel för att få veta hela Node.js installationsprocess .

Så nu ska vi gå vidare i denna Node.js-handledning, där jag kommer att prata om den viktigaste komponenten i Node.js, dvs npm.

NPM (Node Package Manager)

NPM står för Node Package Manager som som namnet antyder är en pakethanterare för Node.js-paket / moduler. Från nodversion 0.6.0. framåt har npm lagts till som standard i nodinstallationen. Det sparar dig från besväret med att installera npm uttryckligen.



NPM hjälper i princip på två sätt:

vad är logger i java
  1. Tillhandahåller och är värd för onlineförvar för nod.js-paket / moduler som enkelt kan laddas ner och användas i våra projekt. Du hittar dem här: npmjs.com
  2. Tillhandahåller kommandoradsverktyget för att installera olika Node.js-paket, hantera Node.js-versioner och beroenden för paketen.

Men nu måste du undra vad exakt dessa moduler är och hur de hjälper oss att bygga Node.js-applikationerna. Tja, i nästa avsnitt av denna Node.js-handledning kommer jag att ge dig en fullständig inblick i Node.js-moduler.

Node.js-moduler

Modulerna i Node.js representerar olika funktioner som samlas i enstaka eller flera JS-filer. Dessa moduler har ett unikt sammanhang, så att de inte stör eller förorenar omfattningen av andra moduler.

Dessa moduler möjliggör återanvändning av koden och förbättrar användarvänligheten. Node.js tillhandahåller i princip tre typer av moduler:

  1. Kärnmoduler
  2. Lokala moduler
  3. Tredjepartsmoduler

Kärnmodul

Eftersom Node.js är en mycket lättviktig ram, kärnmodulerna buntar de absoluta minimifunktionerna. Dessa moduler laddas vanligtvis när Node-processen börjar köras. Allt du behöver göra är att importera dessa kärnmoduler för att kunna använda dem i din kod.

Nedan har jag listat några viktiga kärnmoduler.

Kärnmodul Beskrivning
http Innehåller klasser, metoder och händelser som krävs för att skapa Node.js HTTP-server
url Innehåller metoder för URL-upplösning och parsning i Node
frågesträng Innehåller metoder för att hantera en frågesträng av Node
väg Innehåller metoder för att hantera filvägar
fs Innehåller klasser, metoder och händelser för att arbeta med fil I / O
Användbar Innehåller verktygsfunktioner som kan vara användbara för programmerare

Du kan ladda din kärnmodul med hjälp av nedanstående kod:

var module = kräver ('module_name')

Låt oss nu se vad som är ”lokala moduler”.

Lokala moduler

De lokala modulerna i Node.js är anpassade moduler som skapas lokalt av användare / utvecklare i applikationen. Dessa moduler kan innehålla olika funktioner buntade i olika filer och mappar som enkelt kan distribueras i Node.js-communityn med NPM.

Dessa moduler laddas på samma sätt som kärnmoduler. Låt oss visa dig hur du gör det med hjälp av ett grundläggande exempel.

Skapa din anpassade / lokala module.js-fil

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

Inkludera din modulfil i din huvudsakliga applikationsfil.

var myLogModule = kräver ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Utbildning')

Nu kan du köra dessa filer med kommandot nedan:

nod application.js

Låt mig nu visa dig vad som är externa moduler.

Externa moduler

Du kan använda den externa eller 3rdpartimoduler endast genom att ladda ner dem via NPM. Dessa moduler utvecklas vanligtvis av andra utvecklare och är gratis att använda. Få av de bästa externa modulerna är express, react, gulp, mongoose, mocka etc.

Globalt laddning av tredjepartsmoduler:

npm installera - g

Inkludera din modulfil i din huvudsakliga applikationsfil:

npm install - spara

JSON-fil

De package.json-fil i Node.js är hjärtat i hela applikationen. Det är i princip manifestfilen som innehåller metadata för projektet. Således blir förståelse och arbete med den här filen mycket viktigt för en framgångsrik utveckling av Node-projektet.

Package.json-filen består vanligtvis av metadata för applikationen, som ytterligare kategoriseras i nedan två kategorier:

  1. Identifiera metadataegenskaper: Detta består av egenskaper som projektnamn, aktuell modulversion, licens, projektförfattare, projektbeskrivning etc.
  1. Skriva direkt till filen: Du kan skriva in nödvändig information direkt i filen package.json och inkludera den i ditt projekt.

Nu har du redan bekantat dig med de olika komponenterna i Node JS-applikationen. I nästa avsnitt i denna Node.js-handledning kommer jag att dela med mig av några grundläggande Node Js så att vi kan börja med händerna på.

Grunderna för Node.js

Eftersom Node.js är ett JavaScript-ramverk använder den JavaScript-syntaxen. Om du vill lära dig JavaScript i detalj kan du hänvisa till detta . För nu kommer jag att förstöra dig med några grunder i Node.js som:

Datatyper

Liksom alla andra programmeringsspråk har Node.js olika datatyper, vilka ytterligare kategoriseras i primitiva och icke-primitiva datatyper.

Primitiva datatyper är:

  1. Sträng
  2. siffra
  3. Boolean
  4. Null
  5. Odefinierad

Icke-primitiva datatyper är:

  1. Objekt
  2. Datum
  3. Array

Variabler

Variabel är enheter som har värden som kan variera under ett program. För att skapa en variabel i Node.js måste du använda ett reserverat nyckelord var. Du behöver inte tilldela en datatyp, eftersom kompilatorn automatiskt väljer den.

Syntax:

var varName = värde

Operatörer

Node.js stöder nedanstående operatörer:

Operatörstyp Operatörer
Aritmetisk +, -, /, *,%, ++, -
Uppdrag =, + =, - =, * =, / =,% =
Villkorlig =?
Jämförelse ==, === ,! = ,! ==,>,> =,<, <=,
Logisk &&, || ,!
Bitvis &, |, ^, ~,<>, >>>

Funktioner

Funktioner i Node.js är ett kodblock som har ett namn och är skrivet för att uppnå en viss uppgift. Du måste använda nyckelordsfunktionen för att skapa den. En funktion är i allmänhet en tvåstegsprocess. Det första definierar funktionen och den andra åberopar den. Nedan är syntaxen för att skapa och åberopa en funktion:

Exempel:

// Definiera en funktionsfunktion display_Name (förnamn, efternamn) {alert ('Hej' + förnamn + '' + efternamn)} // Anropa funktionen display_Namn ('Parkera', 'Jimin')

Objekt

Ett objekt är en icke-primitiv datatyp som kan innehålla flera värden när det gäller egenskaper och metoder. Node.js-objekt är fristående enheter eftersom det inte finns något koncept för klass. Du kan skapa ett objekt på två sätt:

  1. Använda Objekt bokstavligt
  2. Använda Objektkonstruktör

Exempel:

// objekt med egenskaper och metod var medarbetare = {// egenskaper förstnamn: 'Minho', efternamn: 'Choi', ålder: 35, lön: 50000, // metod getFullName: funktion () {return this.firstName + '' + this.lastName}}

Filsystem

För att komma åt det fysiska filsystemet använder Node.js fs modul som i grunden tar hand om alla asynkrona och synkrona fil I / O-operationer. Denna modul importeras med kommandot nedan:

var fs = kräver ('fs')

Några av de allmänna användningsområdena för filsystemmodulerna är:

  • 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 ()})}. Lyssna (8080)
  • Skapa filer
    1. appendFile ()
    2. öppet()
    3. writeFile ()
  • Uppdatera filer
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Radera filer
    1. fs.unlink ()
  • Byt namn på filer
    1. fs.rename ()

Så med dessa kommandon kan du i stort sett utföra alla nödvändiga åtgärder på dina filer. Låt oss nu gå vidare med denna Node.js-handledning och se vad som är händelser och hur de hanteras i Node.js.

evenemang

Som jag redan har nämnt är Node.js-applikationer enkeltrådade och händelsestyrda. Node.js stöder samtidighet eftersom den är händelsestyrd och därmed använder begrepp som händelser och återuppringningar. Async-funktionen kallar hjälp för Node.js när det gäller att upprätthålla samtidighet i hela applikationen.

I grund och botten finns det i en Node.js-applikation en huvudslinga som väntar och lyssnar på händelser, och när någon händelse är klar startar den omedelbart en återuppringningsfunktion.

Nedanstående diagram visar hur händelserna drivs i Node.js.

Trådmodell - Node.js-handledning - Edureka

En sak som du måste notera här är att även om händelser liknar återuppringningsfunktioner men skillnaden ligger i deras funktioner. När en asynkron funktion returnerar dess resultat återkallas å andra sidan händelsehantering fungerar helt på observatörsmönstret. Och i Node.js kallas metoder som lyssnar på händelserna för observatörer. I det ögonblick som en händelse utlöses börjar dess lyssnarfunktion köras automatiskt. Eventmoduler och EventEmitter-klassen tillhandahåller flera inbyggda händelser som används för att binda händelser med eventlyssnare. Nedan har jag skrivit ner syntaxen för det.

Bindande händelse till en händelselyssnare

// Importera händelsemodul var my_Events = kräver ('events') // Skapa ett eventEmitter-objekt var my_EveEmitter = nytt my_Events.EventEmitter ()

Bindande evenemangshanterare till ett evenemang

hur man testar en databas
// Bindande händelse och händelsehanterare my_EveEmitter.on ('eventName', eventHandler)

Avfyrar ett evenemang

// Avfyra en händelse my_EveEmitter.emit ('eventName')

Låt oss nu försöka implementera de saker som jag har diskuterat i detta avsnitt Node.js Event.Koden nedan visar en enkel representation av utförande av händelser 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) returnera emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('Startar processen för' + info)}) it.on ('AfterProcess', funktion (info) {console.log ('Finishing process for' + info)

I nästa avsnitt av denna Node.js-handledning kommer jag att ge dig insikter om en av de viktigaste modulerna i Node.js som heter HTTP-modulen.

HTTP-modul

Generellt används Node.js för att utveckla serverbaserade applikationer. Men med hjälp av modulen kan du enkelt skapa webbservrar som kan svara på klientförfrågningarna. Således hänvisas det också till webbmodul och tillhandahåller moduler som HTTP och begäran som underlättar Node.js vid behandling av serverförfrågningar.

Du kan enkelt inkludera den här modulen i din Node.js-applikation genom att bara skriva nedanstående kod:

var http = kräver ('http')

Nedan har jag skrivit en kod som visar hur en webbserver utvecklas i Node.js.

// ringer http-biblioteket var http = kräver ('http') var url = kräver ('url') // skapar server var server = http.createServer (funktion (req, res) {// ställer in innehållshuvud res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true). Fråga var txt = q.year + '' + q.month // skicka sträng till svar res.end (txt)}) // tilldelar 8082 som serverlyssningsport server.listen (8082)

I nästa avsnitt av denna Node.js-handledning kommer jag att prata om Express.js som används i hög grad för utveckling av webbapplikationer på serversidan.

Express.js

Express.js är ett ramverk som är byggt ovanpå Node.js som underlättar hanteringen av dataflödet mellan servern och rutterna i applikationerna på serversidan. Det är en lätt och flexibel ram som ger ett brett utbud av funktioner som krävs för webben samt utveckling av mobilapplikationer.

Express.js är utvecklat på den mellanvarumodul av Node.js som kallas ansluta . Anslutningsmodulen använder vidare http modul för att kommunicera med Node.js. Således, om du arbetar med någon av de anslutningsbaserade mellanvarumodulerna, kan du enkelt integrera med Express.js.

Inte bara detta, några av de största fördelarna med Express.js är:

  • Gör utveckling av webbapplikationer snabbare
  • Hjälper till att bygga mobil- och webbapplikation av enkelsidiga, flersidiga och hybridtyper
  • Express tillhandahåller två mallmotorer, nämligen Jade och EJS
  • Express följer Model-View-Controller (MVC) -arkitekturen
  • Gör integration med databaser som MongoDB, Redis, MySQL
  • Definierar ett felhanteringsprogram
  • Förenklar konfigurationen och anpassningen enkelt för applikationen.

Med alla dessa funktioner tar Express ansvaret för backend-delen i MEAN-stacken. Mean Stack är öppen källkod JavaScript-programvarustack som används för att bygga dynamiska webbplatser och webbapplikationer. Här, BETYDA står för M ongoDB, ÄR xpress.js, TILL ngularJS och N ode.js.

Låt oss nu se ett enkelt exempel för att förstå hur Express.js fungerar med Node.js för att underlätta vårt arbete. Men innan du börjar arbeta med Express.js måste du installera det i ditt system.

För att installera Express.js globalt kan du använda kommandot nedan:

npm installera -g express

Eller om du vill installera den lokalt i din projektmapp måste du utföra kommandot nedan:

npm installera express - spara

Eftersom vi är klara med alla förberedelser, låt oss nu hoppa direkt in i praktisk implementering. Här kommer jag att visa en enkel användarautentiseringsapplikation med Node.js och Express.js.

Node.js självstudie steg för steg applikationsutveckling med Express.js

För detta kommer vi att behöva nedanstående filer:

  • package.json
  • script.js
  • utsikt
    • index.jade
    • login.jade
    • secure.jade
    • obehörig.jade
    • välkommen.jade
  • lib
    • routes.js

Så, låt oss börja med package.json .

{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express with Node.js', 'version': '0.0.0', 'scripts': {'start': 'node script.js '},' engine ': {' 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 ': {}}

Därefter måste du skapa script.js .

var express = kräver ('express') var http = kräver ('http') var port = 8999 var app = express () const flash = kräver ('connect-flash') var cookieParser = kräver ('cookie-parser') var server = http.createServer (app) function checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // serverar / skyddar inte de som inte är inloggade om (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('unauthorized', {status: 403}) return} nästa ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({secret: 'exempel'})) 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 ('Nod som lyssnar på port% s', port)

Skapa nu en mapp med namnet vy, under vilken du kommer att lägga till jade-filerna som kommer att vara ansvariga för olika sidvisningar. Den första visningsfilen du behöver skapa är index.jade .

!!! 5 html (lang = 'en') head title Användarautentisering Exempel body h1 center Authentication Demo med Express h3 Navigera till h4 ul li: a (href = '/ secure') Säker innehåll li: a (href = '/ welcome') Välkomstsida li: a (href = '/ logout') Logout

Skapa nu login.jade fil.

!!! 5 html (lang = 'en') head title Express-autentiseringsexempel body h1 center Logga in på detta Express-autentiseringsexempelcenter p Använd användare för användarnamnet och passera för lösenordet. formulär (metod = 'post') p-etikett (för = 'användarnamn') E-postadressinmatning (typ = 'text', namn = 'användarnamn', klass = 'formulärkontroll', id = 'exempelInputPassword1', platshållare = ' E-post ', stil =' bredd: 400px ') p centeretikett (för =' lösenord ') Lösenordsinmatning (typ =' lösenord ', namn =' lösenord ', class =' ​​form-control ', id =' exempelInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Skicka - varje meddelande i flash h4 (style = 'color: red') # {meddelande}

Nästa steg är att skapa välkommen.jade .

Java bryter sig ur en metod
!!! 5 html (lang = 'en') head title Användarautentisering Exempel body h1 center Välkommen till Edureka Tutorial!

Skapa sedan secure.jade fil.

!!! 5 html (lang = 'sv') huvudtitel Express Authentication Exempel body h1 center Hej, säker användare. p Navigera till ul li: a (href = '/ säker') Säker innehåll li: a (href = '/ välkommen') Välkomstsida li: a (href = '/ logout') Logout

Skapa nu obehörig.jade fil.

!!! 5 html (lang = 'en') head title Användarautentisering Exempel body h1 center Obehörig p Du är obehörig att visa den här sidan. p snälla ' att fortsätta

Nu måste du skapa en mapp och namnge den lib . Skapa nu en route.js fil som kartlägger alla sidor.

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, nästa) {// du kanske vill göra en databasuppslagning eller något mer skalbart här om (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} annars {req.flash ('error', 'Användarnamn och lösenord är felaktiga') res. omdirigera ('/ login')}} app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}

Om du nu vill köra den här koden själv kan du ladda ner den härifrån: Node.js tutorial PDF .

Med detta kommer vi till slutet av denna Node.js-handledning. Jag hoppas att jag kunde förklara begreppen Node.js från grunden.

Om du hittade den här “Node.js Tutorial ' relevant, kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna Node.js-handledning så kommer vi tillbaka till dig.