Node.js oktatóanyag - Teljes útmutató kezdőknek

Ez a Node.js oktatóanyag a Node.js alapvető architektúrájáról, működéséről és különféle moduljairól fog szólni. A Node.js és az Express.js gyakorlati megvalósítását is bemutatja.

Ha valaha is hallottál a Node.js-ről, akkor tudhatod, hogy ez a JavaScript egyik legkiemelkedőbb és legerősebb keretrendszere. Megjelenése óta továbbra is fojtogatja az IT-piacot. Még új és élénk bevezetésével is tetszik , , Meteor stb., Úgy tűnik, hogy a Node.js népszerűsége soha nem szűnik meg. Kíváncsi vagy miért? Nos, ennek a Node.js bemutatónak a segítségével teljes betekintést nyújtok nektek. Tehát készülj fel a Node.js szerelmére.



Ebben a Node.js oktatóanyagban az alábbi témákat fogom megvitatni:



Mi a Node.js?

A Node.js egy erőteljes keretrendszer, amelyet a rendszeren fejlesztettek ki A Chrome V8 JavaScript-motorja amely a JavaScriptet közvetlenül a natív gépkódba fordítja. Ez egy könnyű keretrendszer, amelyet szerveroldali webalkalmazások létrehozására használnak, és kiterjeszti a JavaScript API-t, hogy a szokásos szerveroldali funkciókat kínálja. Általában nagyszabású alkalmazások fejlesztésére használják, különösen video streaming oldalak, egyoldalas alkalmazások és más webalkalmazások számára. Node.js teszi eseményvezérelt, nem blokkoló I / O modell használata, amely megfelelő választást tesz lehetővé az adatigényes valós idejű alkalmazások számára.

Mint minden más programozási nyelv, a node.js is csomagokat és modulokat használ. Ezek azok a könyvtárak, amelyek különféle funkciókat tartalmaznak, és amelyeket az npm-ből (csomópont-csomagkezelő) importálnak a kódunkba, és felhasználják a programokban. Az alábbiakban felsoroljuk a Node.js-t meghatározó főbb funkciókat:



A Node.js jellemzői

  1. Nyílt forráskód
    A Node.js egy nyílt forráskódú MIT licenc, amelyet hatalmas közösség támogat. A közösség nagyjából aktívan hozzájárult új képességek hozzáadásához a Node.js alkalmazásokhoz.
  2. Egyszerű és gyors
    Mivel a Node.js a Google Chrome V8 JavaScript motorjára épül, könyvtárai gyors kódfuttatásra képesek.
  3. Aszinkron
    A Node.js összes könyvtára aszinkron, ami azt jelenti, hogy a Node.js alapú kiszolgálók soha nem várják meg, amíg az API visszaküldi a választ, és továbblép a következő API-ra.
  4. Nagy méretezhetőség
    Az eseménymechanizmus miatt a Node.js nagyon skálázható és nem blokkoló válaszban segíti a szervert.
  5. Egyszálú
    Az eseményhurokolás segítségével a Node.js képes követni az egyszálas modellt. Ez lehetővé teszi, hogy egyetlen program kezelje több kérést.
  6. Nincs pufferelés
    A Node.js alkalmazások egyik fő funkciója, hogy soha nem pufferol semmilyen adatot.
  7. Keresztplatform
    A Node.js könnyen felépíthető és telepíthető különböző platformokon, például Windows, MAC és Linux.

Haladjunk tovább, és nézzük meg, hogyan telepítsük a tényleges kódot a böngészőbe. De előtte le kell töltenie és telepítenie kell a rendszereibe. Hivatkozhat a másik cikkemre, hogy megismerje a teljeset Node.js telepítési folyamat .

Tehát most lépjünk tovább ebben a Node.js oktatóanyagban, ahol a Node.js legfontosabb összetevőjéről, vagyis az npm-ről fogok beszélni.

NPM (csomópont csomagkezelő)

Az NPM a Node Package Manager rövidítése, amely a nevéből kitűnik a Node.js csomagok / modulok csomagkezelője. A Node 0.6.0 verziótól. ettől kezdve az npm alapértelmezés szerint hozzá lett adva a csomópont telepítéséhez. Megtakarít az npm kifejezett telepítésével járó gondoktól.



Az NPM alapvetően kétféleképpen segít:

ec2 létrehoz egy példányt pillanatképből
  1. Online node.js csomagok / modulok online tárhelyeit biztosítja és tárolja, amelyek könnyen letölthetők és felhasználhatók projektjeinkben. Itt találhatók: npmjs.com
  2. Biztosítja a Parancssor segédprogramot a különböző Node.js csomagok telepítéséhez, a csomagok Node.js verzióinak és függőségeinek kezeléséhez.

De most biztosan kíváncsi arra, hogy pontosan mik ezek a modulok, és hogyan segítenek nekünk a Node.js alkalmazások felépítésében. Nos, a Node.js oktatóanyag következő szakaszában teljes betekintést nyújtok a Node.js modulokba.

Node.js modulok

A Node.js moduljai különféle funkciókat képviselnek, amelyek egyetlen vagy több JS fájlba vannak csomagolva. Ezeknek a moduloknak egyedi kontextusuk van, így soha nem avatkoznak be és nem szennyezik más modulok hatókörét.

Ezek a modulok lehetővé teszik a kód újrafelhasználhatóságát és megkönnyítik a használat egyszerűségét. A Node.js alapvetően háromféle modult kínál:

  1. Core modulok
  2. Helyi modulok
  3. Harmadik fél moduljai

Core modul

Mivel a Node.js egy nagyon könnyűsúlyú keretrendszerben az alapmodulok az abszolút minimális funkciókat tartalmazzák. Ezek a modulok általában akkor töltődnek be, amikor a Node folyamat elindítja a végrehajtást. Csak annyit kell tennie, hogy importálja ezeket az alapvető modulokat, hogy felhasználhassa őket a kódban.

Az alábbiakban felsoroltam néhány fontos Core modult.

Core modul Leírás
http Osztályokat, módszereket és eseményeket tartalmaz, amelyek a Node.js HTTP-kiszolgáló létrehozásához szükségesek
url Metódusokat tartalmaz az URL felbontására és a Node csomópont elemzésére
lekérdezés Módszereket tartalmaz a Node lekérdezési karakterláncának kezelésére
pálya A fájlútvonalak kezelésére szolgáló módszereket tartalmaz
fs Osztályokat, módszereket és eseményeket tartalmaz a fájl I / O használatához
Hasznos Segédfunkciókat tartalmaz, amelyek hasznosak lehetnek a programozók számára

Betöltheti az alapmodult az alábbi kód használatával:

var modul = szükség ('modul_neve')

Most megnézhetjük, melyek a „helyi modulok”.

Helyi modulok

A Node.js helyi moduljai olyan egyedi modulok, amelyeket a felhasználó / fejlesztő az alkalmazásban helyben hoz létre. Ezek a modulok különféle fájlokba és mappákba csomagolva tartalmazhatnak különféle funkciókat, amelyek az NPM használatával könnyen eloszthatók a Node.js közösségben.

Ezeket a modulokat a magmodulokhoz hasonló módon töltjük be. Hadd mutassa meg, hogyan kell csinálni egy alap példa segítségével.

Hozza létre az egyéni / helyi module.js fájlt

var detail = {név: function (név) {console.log ('Név:' + név)}, tartomány: function (tartomány) {console.log ('Domain:' + domain)}} module.exports = részlet

Vegye fel a modulfájlt a fő alkalmazásfájlba.

var myLogModule = megköveteli ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Oktatás')

Most az alábbi paranccsal hajthatja végre ezeket a fájlokat:

csomópont application.js

Most hadd mutassam meg, melyek a külső modulok.

Külső modulok

Használhatja a külső vagy a 3rdpártmodulokat csak az NPM-en keresztül történő letöltéssel. Ezeket a modulokat általában más fejlesztők fejlesztették ki, és szabadon felhasználhatók. A legjobb külső modulok közül kevesen vannak expressz, reagál, zabálás, mongúz, mokka stb.

A harmadik fél moduljainak globális betöltése:

npm telepítés --g

Vegye fel a modulfájlt a fő alkalmazásfájlba:

npm install --save

JSON fájl

Az package.json fájl a Node.js fájlban a teljes alkalmazás szíve. Alapvetően a manifeszt fájl tartalmazza a projekt metaadatait. Így ennek a fájlnak a megértése és kezelése nagyon fontossá válik a sikeres Node projektfejlesztés szempontjából.

A package.json fájl általában az alkalmazás metaadatából áll, amelyet további két kategóriába sorolnak:

  1. A metaadatok tulajdonságainak azonosítása: Ez olyan tulajdonságokból áll, mint a projekt neve, az aktuális modul verziója, licenc, a projekt szerzője, a projekt leírása stb.
  1. Írás közvetlenül fájlba: A szükséges információkat közvetlenül beírhatja a package.json fájlba, és felveheti a projektjébe.

Mostanra már megismerkedett a Node JS alkalmazás különböző összetevőivel. A Node.js oktatóanyag következő szakaszában megosztom a Node Js alapjait, hogy kezünkkel indulhassunk.

Node.js alapjai

Mivel a Node.js egy JavaScript keretrendszer, a JavaScript szintaxist használja. Ha részletesen meg akarja tanulni a JavaScript-et, hivatkozhat erre . Egyelőre néhány olyan Node.js alapismerettel fogom Önt ecsetelni, mint például:

Adattípusok

Mint minden más programozási nyelv, a Node.js-nek is vannak különféle adattípusai, amelyeket tovább primitív és nem primitív adattípusokba sorolnak.

A primitív adattípusok:

  1. Húr
  2. Szám
  3. Logikai
  4. Nulla
  5. Határozatlan

A nem primitív adattípusok:

  1. Tárgy
  2. Dátum
  3. Sor

Változók

Változó olyan entitások, amelyek olyan értékekkel rendelkeznek, amelyek a program során változhatnak. Változó létrehozásához a Node.js-ben egy fenntartott var kulcsszót kell használnia. Nem kell adattípust rendelnie, mivel a fordító automatikusan kiválasztja.

Szintaxis:

var varName = érték

Operátorok

A Node.js az alábbi operátorokat támogatja:

Operátor típusa Operátorok
Számtan +, -, /, *,%, ++, -
Feladat =, + =, - =, * =, / =,% =
Feltételes =?
Összehasonlítás ==, === ,! = ,! ==,>,> =,<, <=,
Logikus &&, || ,!
Bitenként &, |, ^, ~,<>, >>>

Funkciók

A Node.js függvényei egy kódblokk, amely rendelkezik névvel és egy adott feladat elérésére íródik. A létrehozásához a kulcsszó függvényt kell használnia. A függvény általában kétlépcsős folyamat. Az első a függvény meghatározása, a második pedig a meghívása. Az alábbiakban bemutatjuk a függvény létrehozásának és meghívásának szintaxisát:

Példa:

// A display_Name (keresztnév, vezetéknév) függvény meghatározása {alert ('Hello' + keresztnév + '' + vezetékNév)} // A display_Name függvény meghívása ('Park', 'Jimin')

Tárgyak

Az objektum egy nem primitív adattípus, amely tulajdonságok és módszerek szempontjából több értéket is képes tárolni. A Node.js objektumok önálló entitások, mivel nincs osztályfogalom. Két objektumot hozhat létre:

  1. Az Object literal használata
  2. Az Object konstruktor használata

Példa:

// objektum tulajdonságokkal és metódussal var alkalmazott = {// tulajdonságok keresztnév: 'Minho', vezetéknév: 'Choi', életkor: 35, fizetés: 50000, // metódus getFullName: function () {return this.firstName + '' + this.lastName}}

Fájlrendszer

A fizikai fájlrendszer eléréséhez a Node.js használja a fs modul, amely alapvetően az összes aszinkron és szinkron fájl I / O műveletet kezeli. Ez a modul az alábbi paranccsal importálható:

var fs = szükség ('fs')

A fájlrendszer modulok általános felhasználási területei:

  • Fájlok olvasása
    1. fs.readFile ()
var http = megköveteli ('http') var fs = megköveteli ('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)
  • Hozzon létre fájlokat
    1. appendFile ()
    2. nyisd ki()
    3. writeFile ()
  • Frissítse a fájlokat
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Fájlok törlése
    1. fs.unlink ()
  • Átnevezheti a fájlokat
    1. fs.rename ()

Tehát ezekkel a parancsokkal nagyjából elvégezheti az összes szükséges műveletet a fájljain. Most lépjünk tovább ezzel a Node.js oktatóanyaggal, és nézzük meg, hogy melyek az események és hogyan kezelik őket a Node.js-ben.

Események

Mint már említettem, a Node.js alkalmazások egyszálúak és eseményvezéreltek. A Node.js támogatja a párhuzamosságot, mivel eseményvezérelt, és így olyan fogalmakat használ, mint események és visszahívások. Az async függvényhívások segítséget nyújtanak a Node.js számára az alkalmazás egyidejűségének fenntartásában.

Alapvetően a Node.js alkalmazásban van egy fő hurok, amely várja és meghallgatja az eseményeket, és miután bármely esemény befejeződött, azonnal elindít egy visszahívási funkciót.

Az alábbi ábra azt mutatja be, hogy az eseményeket hogyan vezérli a Node.js.

Szálmodell - Node.js oktatóanyag - Edureka

mongodb felhasználó létrehozása az adatbázis számára

Egy dolgot meg kell jegyeznünk, hogy annak ellenére, hogy az események hasonlóak a visszahívási funkciókhoz, de a különbség a funkcionalitásukban rejlik. Amikor egy aszinkron függvény visszaadja eredményeit, visszahívásokra kerül sor, másrészt az eseménykezelés teljesen működik a megfigyelői mintán. A Node.js-ben pedig az eseményeket meghallgató módszereket nevezzük megfigyelőknek. Abban a pillanatban, amikor egy esemény elindul, a figyelő funkció automatikusan elindul. Az eseménymodulok és az EventEmitter osztály több beépített eseményt kínál, amelyek az események hallgatásához kapcsolódnak. Az alábbiakban leírtam ennek szintaxisát.

Esemény kötése egy eseményfigyelőhöz

// Események moduljának importálása var my_Events = need ('events') // EventEmitter objektum létrehozása var my_EveEmitter = új my_Events.EventEmitter ()

Eseménykezelő kötése egy eseményhez

// Esemény- és eseménykezelő my_EveEmitter.on ('eventName', eventHandler)

Esemény indítása

// Esemény indítása my_EveEmitter.emit ('eventName')

Most próbáljuk meg megvalósítani azokat a dolgokat, amelyeket ebben a Node.js Esemény szakaszban tárgyaltam.Az alábbi kód az Esemény végrehajtásának egyszerű ábrázolását mutatja a Node.js fájlban.

var emitter = megköveteli ('események'). EventEmitter függvény iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Iteráció feldolgozása:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('A' + info folyamatának megkezdése}}) it.on ('AfterProcess', function (info) {console.log ('+' info feldolgozásának befejezése)

A Node.js oktatóanyag következő szakaszában betekintést nyújtok a Node.js egyik legfontosabb moduljába, amelyet HTTP modulnak hívunk.

HTTP modul

Általában a Node.js szerver alapú alkalmazások fejlesztésére szolgál. De a modul használatával könnyen létrehozhat webszervereket, amelyek válaszolni tudnak az ügyfél kéréseire. Így a Web Module-ra is hivatkozunk, és olyan modulokat biztosít, mint a HTTP és a request, amelyek megkönnyítik a Node.js-t a szerverkérelmek feldolgozásában.

Könnyedén felveheti ezt a modult a Node.js alkalmazásba, csak írja be az alábbi kódot:

var http = megköveteli ('http')

Az alábbiakban írtam egy kódot, amely megmutatja, hogyan fejleszti a webkiszolgáló a Node.js fájlban.

// hívja a http könyvtárat var http = igényel ('http') var url = igényel ('url') // szerver létrehozása var server = http.createServer (function (req, res) {// tartalomfejléc beállítása res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true). Lekérdezés var txt = q.year + '' + q.month // karakterlánc küldése válaszra res.end (txt)}) // a 8082 hozzárendelése kiszolgáló meghallgatási port szerverként. hallgassa meg (8082)

A Node.js oktatóanyag következő szakaszában az Express.js-ről fogok beszélni, amelyet erősen használnak a szerveroldali webalkalmazások fejlesztésére.

Express.js

Az Express.js a Node.js tetejére épített keretrendszer, amely megkönnyíti a szerver és az útvonalak közötti adatfolyam kezelését a kiszolgálóoldali alkalmazásokban. Ez egy könnyű és rugalmas keretrendszer, amely az internethez, valamint a mobilalkalmazások fejlesztéséhez szükséges funkciók széles skáláját biztosítja.

Az Express.js a Node.js köztes modulján van kifejlesztve csatlakozzon . A connect modul tovább használja a http modul a Node.js-szel való kommunikációhoz. Így, ha a connect alapú köztes modulok bármelyikével dolgozik, akkor könnyen integrálható az Express.js fájlba.

Nem csak ez, az Express.js néhány fő előnye:

  • Gyorsabbá teszi a webalkalmazások fejlesztését
  • Segít egyoldalas, többoldalas és hibrid típusú mobil- és webalkalmazások kiépítésében
  • Az Express két sablonmotort kínál, nevezetesen a Jade-et és az EJS-t
  • Az Express a Model-View-Controller (MVC) architektúrát követi
  • Integrációt tesz lehetővé olyan adatbázisokkal, mint a MongoDB, Redis, MySQL
  • Definiál egy hibát a köztes szoftver kezelésében
  • Egyszerűsíti az alkalmazás konfigurálását és testreszabását.

Mindezen jellemzőkkel az Express felelősséget vállal a MEAN verem háttér-részeként. A Mean Stack egy nyílt forráskódú JavaScript szoftverköteg, amelyet dinamikus webhelyek és webalkalmazások készítésére használnak. Itt, ÁTLAGOS áll M ongoDB, IS xpress.js, NAK NEK ngularJS, és N ode.js.

Most láthatunk egy egyszerű példát annak megértésére, hogy az Express.js hogyan működik a Node.js-szel a munkánk megkönnyítése érdekében. De mielőtt elkezdené dolgozni az Express.js-szel, telepítenie kell a rendszerébe.

Az Express.js globális telepítéséhez használja az alábbi parancsot:

npm install -g express

Vagy ha helyileg szeretné telepíteni a projekt mappájába, végre kell hajtania az alábbi parancsot:

npm install express --save

Mivel minden előkészítéssel elkészültünk, ugorjunk át közvetlenül a gyakorlati megvalósításra. Itt bemutatok egy egyszerű felhasználói hitelesítő alkalmazást a Node.js és az Express.js használatával.

Node.js oktatóanyag lépésről lépésre az Express.js használatával

Ehhez az alábbi fájlokra lesz szükségünk:

  • csomag.json
  • script.js
  • nézetek
    • index.jade
    • login.jade
    • biztonságos.jade
    • illetéktelen.jade
    • szívesen.jade
  • lib
    • route.js

Kezdjük tehát csomag.json .

php különbség az echo és a print között
{'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 ': {}}

Ezután létre kell hoznia a script.js .

var express = megköveteli ('express') var http = megköveteli ('http') var port = 8999 var app = express () const flash = megköveteli ('connect-flash') var cookieParser = megköveteli ('cookie-elemző') var server = http.createServer (app) függvény checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // nem szolgál / nem biztonságos azok számára, akik nincsenek bejelentkezve, ha (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('jogosulatlan', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({titkos: 'példa'})) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) need ('./ lib / route.js') (app) app.listen (port) konzol .log ('Csomópont hallgatása a% s porton, port)

Most hozzon létre egy nézet nevű mappát, amely alatt hozzáadja azokat a jade fájlokat, amelyek felelősek lesznek a különböző oldalnézetekért. Az első létrehozandó nézetfájl a index.jade .

!!! 5 html (lang = 'en') fej címe Felhasználói hitelesítés Példa törzs h1 központ Hitelesítési bemutató az Express h3 használatával Keresse meg a h4 ul li: a (href = '/ biztonságos') biztonságos tartalmat li: a (href = '/ welcome') Üdvözlő oldal li: a (href = '/ logout') Kijelentkezés

Most hozza létre a login.jade fájl.

!!! 5 html (lang = 'en') fej címe Express hitelesítési példa törzs h1 központ Jelentkezzen be ebbe az Express hitelesítési példaközpontba p Használja felhasználó a felhasználónév és a passz a jelszóért. űrlap (módszer = 'post') p címke (for = 'felhasználónév') E-mail cím bevitele (type = 'text', név = 'felhasználónév', class = 'form-control', id = 'exampleInputPassword1', helyőrző = ' Email ', style =' width: 400px ') p középcímke (for =' jelszó ') Jelszóbevitel (type =' jelszó ', név =' jelszó ', class =' ​​form-control ', id =' exampleInputPassword1 ', helyőrző = 'Jelszó', style = 'szélesség: 400px') p középen Küldés - minden egyes üzenet h4 flash-ben (style = 'color: red') # {message}

A következő lépés a szívesen.jade .

!!! 5 html (lang = 'en') fej címe Felhasználói hitelesítés Példa törzs h1 központ Üdvözöljük az Edureka bemutatójában!

Ezután hozza létre a biztonságos.jade fájl.

!!! 5 html (lang = 'en') fej címe Express hitelesítés Példa törzs h1 központ Szia, biztonságos felhasználó. p Navigálás az ul li: a (href = '/ biztonságos') oldalra. Biztonságos tartalom li: a (href = '/ welcome') Üdvözlő oldal li: a (href = '/ logout') Kijelentkezés

Most hozza létre a illetéktelen.jade fájl.

!!! 5 html (lang = 'hu') head title Felhasználói hitelesítés Példa törzs h1 központ Jogosulatlan p Ön jogosulatlan megtekinteni ezt az oldalt. p Kérem ' folytatni

Most létre kell hoznia egy mappát, és el kell neveznie lib . Most hozzon létre egy route.js fájl, amely feltérképezi az összes oldalt.

var util = megköveteli ('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 (' biztonságos ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}}) app.post ('/ login', function ( req, res, next) {// érdemes itt adatbázis keresést vagy valami skálázhatóbbat keresni, ha (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ biztonságos')} else {req.flash ('hiba', 'Helytelen a felhasználónév és a jelszó') res. átirányítás ('/ login')}}) app.get ('/ logout', függvény (req, res, következő) {delete req.session.authenticated res.redirect ('/')})}

Most, ha egyedül akarja végrehajtani ezt a kódot, letöltheti innen: Node.js bemutató PDF .

Ezzel véget értünk a Node.js bemutatónak. Remélem, hogy alapoktól meg tudtam magyarázni a Node.js fogalmait.

Ha megtalálta ezt a „Node.js oktatóanyagot ' ide vonatkozó, nézd meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon.

Van egy kérdésünk? Kérjük, említse meg ezt a Node.js oktatóanyag megjegyzés szakaszában, és kapcsolatba lépünk Önnel.