Výukový program Node.js - kompletný sprievodca pre začiatočníkov



Tento výukový program Node.js bude hovoriť o základnej architektúre, práci a rôznych moduloch Node.js. Predvedie tiež praktickú implementáciu súborov Node.js a Express.js.

Ak ste niekedy počuli o Node.js, potom môžete vedieť, že ide o jeden z najvýznamnejších a najvýkonnejších rámcov JavaScriptu. Od svojho uvedenia si naďalej udržiava svoju pozíciu na trhu IT. Aj so zavedením nových a živých Páči sa mi to , , Meteor atď. Zdá sa, že popularita Node.js nikdy neprestane. Pýtate sa prečo? S pomocou tohto výukového programu Node.js vám poskytnem úplný prehľad. Takže pripravte sa na to, že si Node.js. zamilujete.

V tomto výučbe Node.js budem diskutovať o nasledujúcich témach:





Čo je Node.js?

Node.js je výkonný rámec vyvinutý na JavaScriptový modul V8 prehliadača Chrome ktorý kompiluje JavaScript priamo do natívneho strojového kódu. Jedná sa o ľahký rámec, ktorý sa používa na vytváranie webových aplikácií na strane servera, a rozširuje rozhranie JavaScript API o bežné funkcie na strane servera. Spravidla sa používa na vývoj rozsiahlych aplikácií, najmä pre weby na streamovanie videa, jednostránkové aplikácie a ďalšie webové aplikácie. Node.js robí použitie neblokujúceho I / O modelu založeného na udalostiach, čo z neho robí správny výber pre dátovo náročné aplikácie v reálnom čase.

Ako každý iný programovací jazyk, node.js využíva balíčky a moduly. Toto sú knižnice, ktoré obsahujú rôzne funkcie a sú importované z npm (správca balíkov uzlov) do nášho kódu a použité v programoch. Niektoré z hlavných funkcií, ktoré definujú súbor Node.js, sú uvedené nižšie:



Vlastnosti Node.js

  1. Open Source
    Node.js je open source framework MIT licencia, ktorú podporuje veľká komunita. Jeho komunita je do značnej miery aktívna a prispela k pridaniu nových schopností do aplikácií Node.js.
  2. Jednoduché a rýchle
    Pretože je Node.js postavený na Java V8 prehliadača Google Chrome, jeho knižnice umožňujú rýchle vykonávanie kódu.
  3. Asynchrónne
    Všetky knižnice Node.js sú asynchrónne, čo znamená, že servery založené na Node.js nikdy nečakajú na API, ktoré pošle odpoveď späť a prejde na ďalšie API.
  4. Vysoká škálovateľnosť
    Z dôvodu mechanizmu udalostí je súbor Node.js vysoko škálovateľný a pomáha serveru pri neblokujúcej odpovedi.
  5. Jednovláknové
    Pomocou cyklovania udalostí dokáže Node.js nasledovať model s jedným vláknom. To umožňuje jednému programu vybaviť viac požiadaviek.
  6. Žiadne ukladanie do vyrovnávacej pamäte
    Jednou z hlavných funkcií aplikácií Node.js je to, že nikdy nezachováva žiadne údaje.
  7. Cross-Platform
    Node.js možno ľahko vytvoriť a nasadiť na rôzne platformy ako Windows, MAC a Linux.

Poďme teraz ďalej a uvidíme, ako nasadiť skutočný kód do prehliadača. Predtým si však musíte stiahnuť a nainštalovať do svojich systémov. Môžete si prečítať môj ďalší článok, kde získate úplné informácie Proces inštalácie Node.js .

Poďme sa teda posunúť ďalej v tomto výučbe Node.js, kde budem hovoriť o najdôležitejšej zložke Node.js, teda o npm.

NPM (Správca balíkov uzlov)

NPM znamená Node Package Manager, ktorý, ako už názov napovedá, je správcom balíkov pre balíčky / moduly Node.js. Od verzie uzla 0.6.0. a ďalej, npm bol pridaný ako predvolený v inštalácii uzla. Ušetrí vás to od problémov s výslovnou inštaláciou npm.



NPM v zásade pomáha dvoma spôsobmi:

ako písať triedu singleton v jave
  1. Poskytuje a hostí online úložiská balíkov / modulov node.js, ktoré je možné ľahko stiahnuť a použiť v našich projektoch. Nájdete ich tu: npmjs.com
  2. Poskytuje nástroj príkazového riadku na inštaláciu rôznych balíkov Node.js, správu verzií Node.js a závislostí balíkov.

Teraz vás však určite zaujíma, čo sú to vlastne tieto moduly a ako nám pomáhajú pri budovaní aplikácií Node.js. V ďalšej časti tohto tutoriálu Node.js vám poskytnem kompletný prehľad o moduloch Node.js.

Moduly Node.js

Moduly v Node.js predstavujú rôzne funkcie, ktoré sú zoskupené do jedného alebo viacerých súborov JS. Tieto moduly majú jedinečný kontext, takže nikdy nenarušujú ani neznečisťujú rozsah ostatných modulov.

Tieto moduly umožňujú opätovné použitie kódu a zvyšujú jednoduchosť použitia. Node.js v zásade poskytuje tri typy modulov:

  1. Základné moduly
  2. Lokálne moduly
  3. Moduly tretích strán

Jadrový modul

Keďže Node.js je veľmi ľahký rámec, základné moduly združujú absolútne minimálne funkcionality. Tieto moduly sa zvyčajne načítajú, keď proces uzla začne vykonávať. Všetko, čo musíte urobiť, je importovať tieto základné moduly, aby ste ich mohli použiť vo svojom kóde.

Ďalej uvádzam niekoľko dôležitých základných modulov.

Jadrový modul Popis
http Obsahuje triedy, metódy a udalosti potrebné na vytvorenie servera Node.js HTTP
url Obsahuje metódy na rozlíšenie a analýzu adries URL v uzle
reťazec dotazov Obsahuje metódy na prácu s reťazcom dotazu Node
cesta Obsahuje metódy na riešenie ciest k súborom
fs Obsahuje triedy, metódy a udalosti na prácu so súborovými V / V
Užitočné Obsahuje pomocné funkcie, ktoré môžu byť užitočné pre programátorov

Svoj hlavný modul môžete načítať pomocou nasledujúceho kódu:

var module = require ('názov_modulu')

Pozrime sa teraz, čo sú „miestne moduly“.

Lokálne moduly

Lokálne moduly Node.js sú vlastné moduly, ktoré sú vytvárané lokálne používateľom / vývojárom v aplikácii. Tieto moduly môžu obsahovať rôzne funkcie združené do samostatných súborov a priečinkov, ktoré je možné ľahko distribuovať v komunite Node.js pomocou NPM.

Tieto moduly sa načítajú podobným spôsobom ako základné moduly. Na základnom príklade si ukážeme, ako na to.

Vytvorte si svoj vlastný / miestny súbor module.js

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

Zahrňte súbor modulu do hlavného súboru aplikácie.

var myLogModule = require ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Education')

Teraz môžete tieto súbory spustiť pomocou nasledujúceho príkazu:

uzol application.js

Teraz vám ukážem, čo sú externé moduly.

Externé moduly

Môžete použiť externý alebo 3rdpárty moduly iba ich stiahnutím cez NPM. Tieto moduly sú všeobecne vyvíjané inými vývojármi a sú voľne použiteľné. Niektoré z najlepších externých modulov sú expresné, reagujúce, hltavé, mongoose, moka atď.

Globálne načítanie modulov tretích strán:

npm install --g

Zahrňte súbor modulu do hlavného súboru aplikácie:

npm install --save

Súbor JSON

The súbor package.json v Node.js je srdcom celej aplikácie. V zásade je to súbor manifestu, ktorý obsahuje metaúdaje projektu. Pochopenie a práca s týmto súborom sa tak stáva veľmi dôležitým pre úspešný vývoj projektu Node.

Súbor package.json spravidla pozostáva z metadát aplikácie, ktoré sú ďalej kategorizované do dvoch nasledujúcich kategórií:

  1. Identifikácia vlastností metadát: Pozostáva z vlastností, ako je názov projektu, aktuálna verzia modulu, licencia, autor projektu, popis projektu atď.
  1. Zápis priamo do súboru: Potrebné informácie môžete priamo zapísať do súboru package.json a zahrnúť ich do svojho projektu.

Teraz ste sa už oboznámili s rôznymi komponentmi aplikácie Node JS. V ďalšej časti tohto tutoriálu Node.js budem zdieľať niektoré základné informácie o Node Js, aby sme mohli začať s rukami.

Základy Node.js

Keďže Node.js je rámec JavaScript, používa syntax JavaScript. Ak sa chcete naučiť JavaScript podrobne, môžete sa na to obrátiť . Zatiaľ vám pomôžem s niektorými základmi Node.js, ako napríklad:

Dátové typy

Rovnako ako akýkoľvek iný programovací jazyk, aj Node.js má rôzne datové typy, ktoré sa ďalej kategorizujú na primitívne a neprimitívne datové typy.

Primitívne dátové typy sú:

ako funguje casting v jave
  1. String
  2. Číslo
  3. Boolovský
  4. Nulový
  5. Nedefinované

Neprimitívne typy údajov sú:

  1. Objekt
  2. Dátum
  3. Pole

Premenné

Variabilné sú entity, ktoré majú hodnoty, ktoré sa môžu počas programu líšiť. Ak chcete vytvoriť premennú v Node.js, musíte použiť vyhradené kľúčové slovo var. Nemusíte priraďovať dátový typ, pretože kompilátor ho automaticky vyberie.

Syntax:

var varName = hodnota

Operátorov

Node.js podporuje nasledujúce operátory:

Typ operátora Operátorov
Aritmetika +, -, /, *,%, ++, -
Postúpenie =, + =, - =, * =, / =,% =
Podmienené =?
Porovnanie ==, === ,! = ,! ==,>,> =,<, <=,
Logické &&, || ,!
Po bitkách &, |, ^, ~,<>, >>>

Funkcie

Funkcie v Node.js je blok kódu, ktorý má názov a je napísaný na dosiahnutie konkrétnej úlohy. Na jeho vytvorenie musíte použiť funkciu kľúčových slov. Funkcia je zvyčajne dvojstupňový proces. Prvý definuje funkciu a druhý ju vyvoláva. Nižšie je uvedená syntax vytvorenia a vyvolania funkcie:

Príklad:

// Definovanie funkcie funkcia display_Name (meno, priezvisko) {alert ('Hello' + meno + '' + priezvisko)} // Vyvolanie funkcie display_Name ('Park', 'Jimin')

Predmety

Objekt je neprimitívny údajový typ, ktorý môže obsahovať viac hodnôt z hľadiska vlastností a metód. Objekty Node.js sú samostatné entity, pretože neexistuje koncept triedy. Objekt môžete vytvoriť dvoma spôsobmi:

  1. Použitie Object literal
  2. Používanie konštruktora objektov

Príklad:

// objekt s vlastnosťami a metódou var employee = {// vlastnosti krstné meno: 'Minho', priezvisko: 'Choi', vek: 35, plat: 50000, // metóda getFullName: function () {return this.firstName + '' + this.lastName}}

Systém súborov

Na prístup k fyzickému súborovému systému Node.js využíva fs modul, ktorý sa v podstate stará o všetky asynchrónne a synchrónne I / O operácie so súbormi. Tento modul sa importuje pomocou nasledujúceho príkazu:

var fs = require ('fs')

Niektoré všeobecné použitie modulov súborového systému sú:

  • Čítať súbory
    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)
  • Vytváranie súborov
    1. appendFile ()
    2. otvorené()
    3. writeFile ()
  • Aktualizujte súbory
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Vymazať súbory
    1. fs.unlink ()
  • Premenujte súbory
    1. fs.rename ()

Pomocou týchto príkazov teda môžete vo svojich súboroch vykonávať všetky požadované operácie. Poďme teraz s týmto Node.js tutoriálom ďalej a pozrime sa, čo sú udalosti a ako sa s nimi zaobchádza v Node.js.

Diania

Ako som už spomenul, aplikácie Node.js sú jednovláknové a riadené udalosťami. Node.js podporuje súbežnosť, pretože je riadená udalosťami, a preto využíva pojmy ako udalosti a spätné volania. Asynchronné volania funkcií pomáhajú súboru Node.js udržiavať súbežnosť v celej aplikácii.

V zásade v aplikácii Node.js existuje hlavná slučka, ktorá čaká a počúva udalosti, a akonáhle je ktorákoľvek udalosť dokončená, okamžite iniciuje funkciu spätného volania.

Nižšie uvedený diagram predstavuje spôsob riadenia udalostí v súbore Node.js.

Thread Model - Node.js Tutorial - Edureka

Jedna vec, ktorú si tu musíte uvedomiť, je, že aj keď udalosti vyzerajú podobne ako funkcie spätného volania, rozdiel spočíva v ich funkčnosti. Keď asynchrónna funkcia vráti svoje výsledky, spätné volania sa vyvolajú na druhej strane spracovanie udalostí úplne funguje na vzore pozorovateľa. A v Node.js sa metódy, ktoré počúvajú udalosti, nazývajú pozorovatelia. V okamihu, keď sa spustí udalosť, automaticky sa spustí jej funkcia poslucháča. Moduly udalostí a trieda EventEmitter poskytujú viac zabudovaných udalostí, ktoré sa používajú na viazanie udalostí na poslucháčov udalostí. Nižšie som si k tomu napísal syntax.

Viazanie udalosti na poslucháča udalostí

// Modul importu udalostí var my_Events = require ('events') // Vytvorenie objektu eventEmitter var my_EveEmitter = nový my_Events.EventEmitter ()

Viazanie obsluhy udalosti na udalosť

// Väzba udalosti a obsluhy udalosti my_EveEmitter.on ('eventName', eventHandler)

Vypálenie udalosti

// Spustiť udalosť my_EveEmitter.emit ('eventName')

Teraz sa pokúsime implementovať veci, o ktorých som hovoril v tejto časti udalostí Node.js.Nasledujúci kód zobrazuje jednoduché znázornenie vykonania udalosti v Node.js.

var emitter = require ('events'). Funkcia EventEmitter iterateProcessor (num) {var emt = nový 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) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('Starting the process for' + info)}) it.on ('AfterProcess', function (info) {console.log ('Finishing processing for' + info)

V ďalšej časti tohto tutoriálu Node.js vám poskytnem informácie o jednom z najdôležitejších modulov Node.js, ktorý sa nazýva modul HTTP.

Modul HTTP

Všeobecne sa Node.js používa na vývoj serverových aplikácií. Pomocou tohto modulu však môžete ľahko vytvárať webové servery, ktoré dokážu reagovať na požiadavky klientov. Preto sa označuje aj ako Webový modul a poskytuje moduly ako HTTP a request, ktoré uľahčujú Node.js pri spracovaní požiadaviek servera.

Tento modul môžete ľahko zahrnúť do svojej aplikácie Node.js jednoduchým napísaním nasledujúceho kódu:

var http = require ('http')

Ďalej som napísal kód, ktorý ukazuje, ako je webový server vyvíjaný v Node.js.

// volanie knižnice http var http = require ('http') var url = require ('url') // vytvorenie servera var server = http.createServer (function (req, res) {// nastavenie hlavičky obsahu res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.mesiac // poslať reťazec na odpoveď res.end (txt)}) // priradenie servera 8082 ako portu na počúvanie servera server.listen (8082)

V ďalšej časti tohto tutoriálu Node.js budem hovoriť o Express.js, ktorý sa vo veľkej miere používa na vývoj webových aplikácií na strane servera.

Express.js

Express.js je rámec postavený na vrchole Node.js, ktorý uľahčuje správu toku údajov medzi serverom a trasami v aplikáciách na strane servera. Jedná sa o ľahký a flexibilný rámec, ktorý poskytuje širokú škálu funkcií potrebných pre vývoj webu a mobilných aplikácií.

Express.js je vyvinutý na middlewarovom module Node.js s názvom spojiť . Pripojovací modul ďalej využíva http modul na komunikáciu s Node.js. Pokiaľ teda pracujete s niektorým z modulov middlewaru založených na pripojení, môžete sa ľahko integrovať do Express.js.

Nielen to, iba niekoľko hlavných výhod Express.js je:

  • Urýchľuje vývoj webových aplikácií
  • Pomáha pri vytváraní mobilných a webových aplikácií jednostránkových, viacstránkových a hybridných typov
  • Express poskytuje dva šablónové moduly, a to Jade a EJS
  • Express sa riadi architektúrou Model-View-Controller (MVC)
  • Integrácia s databázami ako MongoDB, Redis, MySQL
  • Definuje middleware na spracovanie chýb
  • Zjednodušuje konfiguráciu a prispôsobenie aplikácie.

Vďaka všetkým týmto funkciám Express preberá zodpovednosť za backendovú časť v zásobníku MEAN. Mean Stack je open-source softvér JavaScript, ktorý sa používa na vytváranie dynamických webových stránok a webových aplikácií. Tu, ZMYSEL znamenať M ongoDB, JE xpress.js, TO ngularJS a N ode.js.

Pozrime sa teraz na jednoduchý príklad na pochopenie toho, ako Express.js pracuje s Node.js na uľahčenie našej práce. Ale skôr ako začnete pracovať s Express.js, musíte si ho nainštalovať do vášho systému.

Ak chcete globálne nainštalovať Express.js, môžete použiť nasledujúci príkaz:

npm install -g express

Alebo ak ho chcete nainštalovať lokálne do priečinka projektu, musíte vykonať nasledujúci príkaz:

npm install express --save

Keďže sme skončili so všetkými prípravami, poďme teraz priamo na praktickú implementáciu. Tu ukážem jednoduchú aplikáciu na overenie používateľa pomocou súborov Node.js a Express.js.

Výukový program Node.js Podrobný vývoj aplikácií s Express.js

Na to budeme potrebovať nasledujúce súbory:

  • balíček.json
  • script.js
  • názory
    • index.jade
    • login.jade
    • secure.jade
    • neoprávnený.jade
    • vitaj.jade
  • lib
    • trasy.js

Takže začnime s balíček.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 ': {}}

Ďalej musíte vytvoriť 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 = funkcia http.createServer (aplikácia) checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // neposkytujú / nezabezpečujú neprihláseným používateľom if (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('neautorizovaný', {stav: 403}) návrat} 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 ('view engine', 'jade') app.set ('view options', {layout: false}) require ('./ lib / routes.js') (app) app.listen (port) console .log ('Uzol počúva na porte% s', port)

Teraz vytvorte priečinok s názvom view, pod ktorý budete pridávať nefritové súbory, ktoré budú zodpovedné za rôzne zobrazenia stránky. Prvý súbor na prezeranie, ktorý musíte vytvoriť, je index.jade .

!!! 5 html (lang = 'en') head title Autentifikácia užívateľa Vzor tela h1 centrum Autentifikácia Demo pomocou Express h3 Prejdite na h4 ul li: a (href = '/ secure') Zabezpečený obsah li: a (href = '/ welcome') Uvítacia stránka li: a (href = '/ logout') Odhlásiť sa

Teraz vytvorte login.jade spis.

!!! 5 html (lang = 'en') head title Názov expresného overenia tela h1 centrum Prihlásiť sa do tohto centra príkladu expresného overenia p Použiť používateľ pre používateľské meno a prejsť pre heslo. form (method = 'post') p label (for = 'username') Email Address input (type = 'text', name = 'username', class = 'form-control', id = 'exampleInputPassword1', placeholder = ' Email ', style =' width: 400px ') p stredový štítok (pre =' heslo ') Zadanie hesla (typ =' heslo ', meno =' heslo ', trieda =' kontrola formulára ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Submit - each message in flash h4 (style = 'color: red') # {message}

Ďalším krokom je vytvorenie súboru vitaj.jade .

!!! 5 html (lang = 'en') head title Autentifikácia užívateľa Príklad tela h1 center Vitajte v príručke Edureka!

Ďalej vytvorte secure.jade spis.

čo je rmi v jave
!!! 5 html (lang = 'en') head title Express Authentication Example body h1 center Ahoj, zabezpečený užívateľ. p Prejdite na ul li: a (href = '/ secure') Zabezpečený obsah li: a (href = '/ welcome') Úvodná stránka li: a (href = '/ logout') Odhlásiť sa

Teraz vytvorte neoprávnený.jade spis.

!!! 5 html (lang = 'en') head title Autentifikácia užívateľa Príklad tela h1 center Neoprávnené p Ste neoprávnení prezerať si túto stránku. p Prosím ' pokračovať

Teraz musíte vytvoriť priečinok a pomenovať ho lib . Teraz vytvorte route.js súbor, ktorý zmapuje všetky stránky.

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) {// možno by ste tu chceli vyhľadať databázu alebo niečo škálovateľnejšie, ak (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('error', 'Uživatelské meno a heslo sú nesprávne') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}

Ak chcete tento kód vykonať sami, môžete si ho stiahnuť tu: Výukový program Node.js PDF .

Týmto sa dostávame na koniec tohto tutoriálu Node.js. Dúfam, že sa mi podarilo od základov vysvetliť pojmy Node.js.

Ak ste našli tento „Node.js Tutorial „Relevantné, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov tohto tutoriálu Node.js a my sa vám ozveme.