Výukový program Node.js - kompletní průvodce pro začátečníky

Tento výukový program Node.js bude hovořit o základní architektuře, práci a různých modulech Node.js. Rovněž předvede praktickou implementaci Node.js a Express.js.

Pokud jste někdy slyšeli o Node.js, možná víte, že se jedná o jeden z nejvýznamnějších a nejvýkonnějších rámců JavaScriptu. Od svého uvedení na trh si nadále udržuje svoji pozici na trhu IT. I se zavedením nových a živých jako , „Meteor atd., Zdá se, že popularita Node.js nikdy nepřestane. Zajímá vás proč? S pomocí tohoto tutoriálu Node.js vám poskytnu úplný přehled. Připravte se tedy na zamilování do Node.js.

V tomto výukovém programu Node.js budu diskutovat o následujících tématech:





Co je Node.js?

Node.js je výkonný rámec vyvinutý na JavaScriptový modul V8 prohlížeče Chrome který kompiluje JavaScript přímo do nativního strojového kódu. Jedná se o lehký rámec používaný k vytváření webových aplikací na straně serveru a rozšiřuje rozhraní JavaScript API o obvyklé funkce na straně serveru. Obvykle se používá pro vývoj rozsáhlých aplikací, zejména pro weby pro streamování videa, jednostránkové aplikace a další webové aplikace. Node.js dělá použití neblokujícího I / O modelu řízeného událostmi, což z něj činí správnou volbu pro aplikace náročné na data v reálném čase.

Jako každý jiný programovací jazyk, node.js využívá balíčky a moduly. Jedná se o knihovny, které obsahují různé funkce a jsou importovány z npm (správce balíčků uzlů) do našeho kódu a využívány v programech. Některé z hlavních funkcí, které definují Node.js, jsou uvedeny níže:



Vlastnosti Node.js

  1. Otevřený zdroj
    Node.js je open source framework MIT licence, která je podporována velkou komunitou. Jeho komunita je docela aktivní a přispěla k přidání nových funkcí do aplikací Node.js.
  2. Jednoduché a rychlé
    Vzhledem k tomu, že Node.js je postaven na V8 JavaScript Engine v Google Chrome, jeho knihovny jsou schopné rychlého spuštění kódu.
  3. Asynchronní
    Všechny knihovny Node.js jsou asynchronní, což znamená, že servery založené na Node.js nikdy nečekají, až API pošle zpět odpověď a přejde na další API.
  4. Vysoká škálovatelnost
    Z důvodu mechanismu události je Node.js vysoce škálovatelný a pomáhá serveru v neblokující odpovědi.
  5. Jednovláknový
    S pomocí smyčky událostí je Node.js schopen sledovat model s jedním vláknem. To umožňuje jednomu programu zpracovat více požadavků.
  6. Žádné ukládání do vyrovnávací paměti
    Jednou z hlavních funkcí aplikací Node.js je, že nikdy neukládá žádná data do vyrovnávací paměti.
  7. Cross-Platform
    Node.js lze snadno vytvořit a nasadit na různých platformách, jako jsou Windows, MAC a Linux.

Pojďme nyní pokročit dále a uvidíme, jak nasadit skutečný kód do prohlížeče. Ale předtím si musíte stáhnout a nainstalovat do svých systémů. Celý můj článek můžete odkázat na další informace Proces instalace Node.js .

Pojďme se tedy posunout dále v tomto výukovém programu Node.js, kde budu mluvit o nejdůležitější součásti Node.js, tj. Npm.

NPM (správce balíčků uzlů)

NPM znamená Node Package Manager, který, jak název napovídá, je správcem balíčků pro Node.js balíčky / moduly. Od verze uzlu 0.6.0. dále, npm byl přidán jako výchozí v instalaci uzlu. Ušetří vás to z potíží s instalací npm explicitně.



NPM v zásadě pomáhá dvěma způsoby:

je postgraduální a ovládá stejné
  1. Poskytuje a hostuje online úložiště pro balíčky / moduly node.js, které lze snadno stáhnout a použít v našich projektech. Najdete je zde: npmjs.com
  2. Poskytuje nástroj příkazového řádku za účelem instalace různých balíčků Node.js, správy verzí Node.js a závislostí balíčků.

Ale teď se musíte divit, co přesně tyto moduly jsou a jak nám pomáhají při vytváření aplikací Node.js. V další části tohoto tutoriálu Node.js vám poskytnu úplný přehled o modulech Node.js.

Moduly Node.js

Moduly v Node.js představují různé funkce, které jsou seskupeny do jednoho nebo více souborů JS. Tyto moduly mají jedinečný kontext, takže nikdy nezasahují ani neznečišťují rozsah ostatních modulů.

Tyto moduly umožňují opětovné použití kódu a zvyšují snadnost použití. Node.js v zásadě poskytuje tři typy modulů:

  1. Základní moduly
  2. Místní moduly
  3. Moduly třetích stran

Základní modul

Vzhledem k tomu, Node.js je velmi lehká váha rámec, základní moduly svazují absolutní minimální funkce. Tyto moduly se obvykle načtou, když proces Node zahájí provádění. Vše, co musíte udělat, je importovat tyto základní moduly, abyste je mohli použít ve svém kódu.

Níže jsem uvedl několik důležitých základních modulů.

Základní modul Popis
http Obsahuje třídy, metody a události potřebné k vytvoření serveru HTTP Node.js
url Obsahuje metody pro rozlišení URL a analýzu v Node
Řetězec dotazu Obsahuje metody pro zpracování řetězce dotazu Node
cesta Obsahuje metody pro řešení cest k souborům
fs Obsahuje třídy, metody a události pro práci s I / O souborů
Užitečný Obsahuje užitečné funkce, které mohou být užitečné pro programátory

Základní modul můžete načíst pomocí níže uvedeného kódu:

var module = require ('název_modulu')

Nyní se podívejme, co jsou „místní moduly“.

Místní moduly

Místní moduly Node.js jsou vlastní moduly, které jsou vytvořeny místně uživatelem / vývojářem v aplikaci. Tyto moduly mohou zahrnovat různé funkce spojené do samostatných souborů a složek, které lze snadno distribuovat v komunitě Node.js pomocí NPM.

Tyto moduly jsou načítány podobným způsobem jako základní moduly. Na základním příkladu vám ukážeme, jak na to.

Vytvořte si vlastní / místní soubor module.js

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

Zahrňte soubor modulu do hlavního souboru aplikace.

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

Nyní můžete tyto soubory spustit pomocí následujícího příkazu:

uzel application.js

Nyní vám ukážu, co jsou externí moduly.

Externí moduly

Můžete použít externí nebo 3rdparty moduly pouze jejich stažením přes NPM. Tyto moduly jsou obecně vyvíjeny jinými vývojáři a lze je používat zdarma. Několik nejlepších externích modulů je expresních, reagujících, hltavých, mongoose, moka atd.

Globální načítání modulů třetích stran:

npm install --g

Zahrňte soubor modulu do hlavního souboru aplikace:

npm install --save

Soubor JSON

The soubor package.json v Node.js je srdcem celé aplikace. V zásadě jde o soubor manifestu, který obsahuje metadata projektu. Pochopení a práce s tímto souborem se tak stává velmi důležitým pro úspěšný vývoj projektu Node.

Soubor package.json se obecně skládá z metadat aplikace, která se dále dělí do dvou kategorií:

  1. Identifikace vlastností metadat: Skládá se z vlastností, jako je název projektu, aktuální verze modulu, licence, autor projektu, popis projektu atd.
  1. Zápis přímo do souboru: Můžete přímo napsat potřebné informace do souboru package.json a zahrnout je do svého projektu.

Nyní jste se již seznámili s různými komponentami aplikace Node JS. V další části tohoto tutoriálu Node.js budu sdílet některé základy Node Js, abychom mohli začít s rukama.

Základy Node.js

Protože Node.js je rámec JavaScriptu, používá syntaxi JavaScriptu. Pokud se chcete podrobně naučit JavaScript, můžete se na to podívat . Prozatím vás vyčistím některými základy Node.js, jako jsou:

Typy dat

Stejně jako jakýkoli jiný programovací jazyk má Node.js různé datové typy, které se dále dělí na primitivní a neprimitivní datové typy.

Primitivní datové typy jsou:

návody serveru SQL pro začátečníky
  1. Tětiva
  2. Číslo
  3. Booleovský
  4. Nula
  5. Nedefinováno

Neprimitivní datové typy jsou:

  1. Objekt
  2. datum
  3. Pole

Proměnné

Proměnné jsou entity, které obsahují hodnoty, které se mohou v průběhu programu lišit. Chcete-li vytvořit proměnnou v Node.js, musíte použít vyhrazené klíčové slovo var. Datový typ nemusíte přiřadit, protože překladač jej automaticky vybere.

Syntax:

var varName = hodnota

Operátoři

Node.js podporuje níže uvedené operátory:

Typ operátora Operátoři
Aritmetický +, -, /, *,%, ++, -
Úkol =, + =, - =, * =, / =,% =
Podmiňovací způsob =?
Srovnání ==, === ,! = ,! ==,>,> =,<, <=,
Logický &&, || ,!
bitový &, |, ^, ~,<>, >>>

Funkce

Funkce v Node.js je blok kódu, který má název a je napsán k dosažení konkrétního úkolu. K jeho vytvoření musíte použít funkci klíčových slov. Funkce je obecně dvoustupňový proces. První definuje funkci a druhá ji vyvolává. Níže je uvedena syntaxe vytváření a vyvolání funkce:

Příklad:

// Definování funkce funkce display_Name (firstName, lastName) {alert ('Hello' + firstName + '' + lastName)} // Vyvolání funkce display_Name ('Park', 'Jimin')

Objekty

Objekt je neprimitivní datový typ, který může obsahovat více hodnot, pokud jde o vlastnosti a metody. Objekty Node.js jsou samostatné entity, protože neexistuje žádný koncept třídy. Objekt můžete vytvořit dvěma způsoby:

  1. Použití Object literal
  2. Pomocí konstruktoru objektů

Příklad:

// objekt s vlastnostmi a metodou var employee = {// vlastnosti firstName: 'Minho', lastName: 'Choi', věk: 35, plat: 50000, // metoda getFullName: function () {return this.firstName + '' + this.lastName}}

Souborový systém

Pro přístup k fyzickému systému souborů Node.js využívá fs modul, který se v zásadě stará o všechny asynchronní a synchronní I / O operace se soubory. Tento modul se importuje pomocí následujícího příkazu:

var fs = require ('fs')

Mezi obecné použití modulů systému souborů patří:

  • Číst soubory
    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ářejte soubory
    1. appendFile ()
    2. otevřeno()
    3. writeFile ()
  • Aktualizujte soubory
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Vymazat soubory
    1. fs.unlink ()
  • Přejmenujte soubory
    1. fs.rename ()

S těmito příkazy tedy můžete do značné míry provádět všechny požadované operace se soubory. Pojďme se nyní posunout dále s tímto výukovým programem Node.js a podívejme se, co jsou Události a jak se s nimi zachází v Node.js.

Události

Jak jsem již zmínil, aplikace Node.js jsou jednovláknové a řízené událostmi. Node.js podporuje souběžnost, protože je řízena událostmi, a tak využívá pojmy jako události a zpětná volání. Volání funkce async pomáhá Node.js udržovat souběžnost v celé aplikaci.

V zásadě v aplikaci Node.js existuje hlavní smyčka, která čeká a naslouchá událostem a po dokončení jakékoli události okamžitě inicializuje funkci zpětného volání.

Níže uvedený diagram představuje způsob, jakým jsou události řízeny v Node.js.

Thread Model - Node.js Tutorial - Edureka

Jedna věc, kterou si zde musíte všimnout, je, že i když události vypadají podobně jako funkce zpětného volání, ale rozdíl spočívá v jejich funkcích. Když asynchronní funkce vrátí své výsledky, zpětná volání jsou vyvolána na druhé straně zpracování událostí zcela funguje na vzoru pozorovatele. A v Node.js se metody, které poslouchají události, nazývají pozorovatelé. V okamžiku, kdy je událost spuštěna, její funkce posluchače se automaticky spustí. Moduly událostí a třída EventEmitter poskytují více vestavěných událostí, které se používají k navázání událostí na posluchače událostí. Níže jsem k tomu napsal syntaxi.

Vazba události na posluchače událostí

// Import událostí modulu var my_Events = require ('events') // Vytvoření objektu eventEmitter var my_EveEmitter = nový my_Events.EventEmitter ()

Vazba obslužné rutiny události na událost

// Vazba události a obslužná rutina události my_EveEmitter.on ('eventName', eventHandler)

Vypálení události

// Spustit událost my_EveEmitter.emit ('eventName')

Zkusme nyní implementovat věci, o kterých jsem hovořil v této sekci událostí Node.js.Níže uvedený kód ukazuje jednoduchou reprezentaci provádění událostí v Node.js.

var emitter = require ('events'). Funkce EventEmitter 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) 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 další části tohoto tutoriálu Node.js vám poskytnu přehled o jednom z nejdůležitějších modulů Node.js, který se nazývá modul HTTP.

Modul HTTP

Obecně se Node.js používá pro vývoj serverových aplikací. Ale pomocí modulu můžete snadno vytvářet webové servery, které mohou reagovat na požadavky klientů. Proto se také odkazuje na webový modul a poskytuje moduly jako HTTP a request, které usnadňují Node.js při zpracování požadavků serveru.

Tento modul můžete snadno zahrnout do své aplikace Node.js pouhým napsáním následujícího kódu:

var http = require ('http')

Níže jsem napsal kód, který ukazuje, jak je webový server vyvíjen v Node.js.

// volání knihovny http var http = require ('http') var url = require ('url') // vytvoření serveru var server = http.createServer (funkce (req, res) {// nastavení záhlaví obsahu res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // odeslat řetězec do odpovědi res.end (txt)}) // přiřazení 8082 jako serveru naslouchajícího serveru server.listen (8082)

V další části tohoto tutoriálu Node.js budu hovořit o Express.js, který se silně používá pro vývoj webových aplikací na straně serveru.

Express.js

Express.js je framework postavený na vrcholu Node.js, který usnadňuje správu toku dat mezi serverem a trasami v aplikacích na straně serveru. Jedná se o lehký a flexibilní rámec, který poskytuje širokou škálu funkcí požadovaných pro vývoj webu i mobilních aplikací.

Express.js je vyvíjen na middlewarovém modulu Node.js s názvem připojit . Připojovací modul dále využívá http modul pro komunikaci s Node.js. Pokud tedy pracujete s některým z middlewarových modulů založených na připojení, můžete se snadno integrovat s Express.js.

Nejen to, jen několik hlavních výhod Express.js je:

  • Zrychluje vývoj webových aplikací
  • Pomáhá při vytváření mobilních a webových aplikací jednostránkových, vícestránkových a hybridních typů
  • Express poskytuje dva šablony, jmenovitě Jade a EJS
  • Express se řídí architekturou Model-View-Controller (MVC)
  • Provádí integraci s databázemi, jako jsou MongoDB, Redis, MySQL
  • Definuje middleware pro zpracování chyb
  • Zjednodušuje konfiguraci a přizpůsobení aplikace.

Se všemi těmito funkcemi přebírá Express odpovědnost za backendovou část v zásobníku MEAN. Mean Stack je open-source software JavaScriptu, který se používá k vytváření dynamických webových stránek a webových aplikací. Tady, ZNAMENAT znamená M ongoDB, JE xpress.js, NA ngularJS a N ode.js.

Podívejme se nyní na jednoduchý příklad k pochopení toho, jak Express.js pracuje s Node.js, aby nám usnadnil práci. Ale než začnete pracovat s Express.js, musíte si jej nainstalovat do svého systému.

Chcete-li nainstalovat Express.js globálně, můžete použít následující příkaz:

npm install -g express

Nebo pokud jej chcete nainstalovat lokálně do složky projektu, musíte provést následující příkaz:

npm install express --save

Jelikož jsme skončili se všemi přípravami, pojďme nyní přímo do praktické implementace. Zde zobrazím jednoduchou aplikaci pro ověřování uživatelů pomocí Node.js a Express.js.

Výukový program Node.js Podrobný vývoj aplikací s Express.js

K tomu budeme potřebovat níže uvedené soubory:

  • balíček.json
  • script.js
  • pohledy
    • index.jade
    • login.jade
    • secure.jade
    • neoprávněný.jade
    • vítejte. jade
  • lib
    • trasy.js

Pojďme tedy na začátek 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 ': {}}

Dále musíte vytvořit 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 = funkce http.createServer (aplikace) checkAuth (req, res, další) {console.log ('checkAuth' + req.url) // neslouží / nezabezpečuje ty, kteří nejsou přihlášeni if ​​(req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('unauthorized', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({tajemství: '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 ('Uzel naslouchá na portu% s', port)

Nyní vytvořte složku s názvem view, pod kterou budete přidávat nefritové soubory, které budou odpovědné za různá zobrazení stránek. První soubor zobrazení, který musíte vytvořit, je index.jade .

!!! 5 html (lang = 'en') head title Autentizace uživatele Příklad těla h1 centrum Ověření Demo pomocí Express h3 Přejděte na h4 ul li: a (href = '/ secure') Zabezpečený obsah li: a (href = '/ welcome') Úvodní stránka li: a (href = '/ logout') Odhlášení

Nyní vytvořte login.jade soubor.

!!! 5 html (lang = 'en') head title Expresní autentizace příklad těla h1 centrum Přihlášení do tohoto Expresního autentizačního centra p použití uživatel pro uživatelské jméno a složit pro 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 středový štítek (pro =' heslo ') Zadání hesla (typ =' heslo ', jméno =' heslo ', třída =' formulář-kontrola ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Submit - each message in flash h4 (style = 'color: red') # {message}

Dalším krokem je vytvoření vítejte. jade .

!!! 5 html (lang = 'en') head title Autentizace uživatele Příklad těla h1 centrum Vítejte v kurzu Edureka!

Dále vytvořte secure.jade soubor.

jak psát skener v Javě
!!! 5 html (lang = 'en') head title Express Authentication Example body h1 center Ahoj, zabezpečený uživatel. p Přejít na ul li: a (href = '/ secure') Zabezpečený obsah li: a (href = '/ welcome') Úvodní stránka li: a (href = '/ logout') Odhlášení

Nyní vytvořte neoprávněný.jade soubor.

!!! 5 html (lang = 'en') head title Autentizace uživatele Příklad těla h1 centrum Neoprávněné p Pro zobrazení této stránky nemáte oprávnění. p Prosím ' pokračovat

Nyní musíte vytvořit složku a pojmenovat ji lib . Nyní vytvořte route.js soubor, který bude mapovat všechny 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žná byste chtěli udělat vyhledávání databáze nebo něco více škálovatelného zde if (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é jméno a heslo jsou nesprávné') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {odstranit req.session.authenticated res.redirect ('/')})}

Pokud chcete tento kód spustit sami, můžete si jej stáhnout zde: Výukový program Node.js PDF .

S tímto se dostáváme na konec tohoto tutoriálu Node.js. Doufám, že jsem byl schopen vysvětlit pojmy Node.js od základů.

Pokud jste našli tento „Výukový program Node.js „Relevantní, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto výukovém programu Node.js a my se vám ozveme.