Modul u Node.js logična je enkapsulacija koda u jednoj jedinici. Uvijek je dobra programska praksa uvijek odvajati kod na takav način da ga čini lakšim za upravljanje i održivim za buduće svrhe. Tu moduli u Node.js-u stupaju u akciju.
Budući da je svaki modul neovisna cjelina sa svojom ugrađenom funkcionalnošću, njime se može upravljati kao zasebnom jedinicom rada.
U ovom vodiču naučit ćete-
- Što su moduli u Node.js
- Korištenje modula u Node.js
- Izrada NPM modula
- Proširivanje modula
- Objavljivanje NPM modula
- Upravljanje paketima trećih strana s npm
- Što je datoteka package.json
Što su moduli u Node.js?
Kao što je ranije rečeno, moduli u Node js-u način su enkapsulacije koda u zasebnu logičku jedinicu. Na tržištu je dostupno mnogo gotovih modula koji se mogu koristiti unutar Node js-a.
Ispod su neki od popularnih modula koji se koriste u Node js aplikaciji
- Express framework - Express je minimalan i fleksibilan okvir web aplikacija Node js koji pruža robustan skup značajki za web i mobilne aplikacije.
- Socket.io - Socket.IO omogućuje dvosmjernu komunikaciju zasnovanu na događajima u stvarnom vremenu. Ovaj je modul dobar za stvaranje aplikacija temeljenih na chatu.
- Jade - Jade je mehanizam predloška visokih performansi i implementiran s JavaScriptom za čvor i preglednike.
- MongoDB - MongoDB Node.js pokretački program službeno je podržani node.js pokretački program za MongoDB.
- Restify - restify je lagani okvir, sličan ekspresnom za izgradnju REST API-ja
- Bluebird - Bluebird je potpuno opremljena knjižnica obećanja s fokusom na inovativne značajke i performanse
Korištenje modula u Node.js
Da bi koristili module u aplikaciji Node.js, prvo ih treba instalirati pomoću upravitelja paketa Node.
Dolje naredbeni redak pokazuje kako se modul "express" može instalirati.
npm instaliraj ekspresno
- Gornja naredba će preuzeti potrebne datoteke koje sadrže "ekspresne module", a pobrinut će se i za instalaciju
- Nakon što je modul instaliran, da biste koristili modul u aplikaciji Node.js, morate upotrijebiti ključnu riječ 'require'. Ova ključna riječ način je koji Node.js koristi za ugrađivanje funkcionalnosti modula u aplikaciju.
Pogledajmo primjer kako možemo koristiti ključnu riječ "require". Sljedeći primjer koda "Guru99" pokazuje kako koristiti funkciju require
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){});var server=app.listen(3000,function(){});
- U samoj prvoj izjavi koristimo ključnu riječ "require" da bismo uključili ekspresni modul. Modul "express" optimizirana je JavaScript knjižnica za razvoj Node.js-a. Ovo je jedan od najčešće korištenih Node.js modula.
- Nakon što je modul uključen, da bi se koristila funkcionalnost unutar modula, treba stvoriti objekt. Ovdje se stvara objekt ekspresnog modula.
- Jednom kada se modul uključi pomoću naredbe "require" i stvori se "objekt", mogu se pozvati potrebne metode ekspresnog modula. Ovdje koristimo naredbu set za postavljanje mehanizma pogleda koji se koristi za postavljanje mehanizma za predloške koji se koristi u Node.js.
Napomena: - (Samo za razumijevanje čitatelja; mehanizam za izradu predložaka pristup je ubrizgavanju vrijednosti u aplikaciju skupljanjem podataka iz podatkovnih datoteka. Ovaj koncept prilično je poznat u Angular JS-u u kojem se kovrčave zagrade {{key}} koriste za zamjenjuje vrijednosti na web stranici. Riječ "ključ" u kovrčavim zagradama u osnovi označava varijablu koja će biti zamijenjena vrijednošću kada se stranica prikaže.)
- Ovdje koristimo metodu preslušavanja kako bi aplikacija poslušala određeni broj porta.
Izrada NPM modula
Node.js ima mogućnost stvaranja prilagođenih modula i omogućuje vam da te prilagođene module uključite u svoju aplikaciju Node.js.
Pogledajmo jednostavan primjer kako možemo stvoriti vlastiti modul i uključiti ga u našu glavnu datoteku aplikacije. Naš modul samo će napraviti jednostavan zadatak zbrajanja dva broja.
Slijedimo korake u nastavku kako bismo vidjeli kako možemo stvoriti module i uključiti ih u našu aplikaciju.
Korak 1) Stvorite datoteku pod nazivom "Addition.js" i uključite donji kod. Ova će datoteka sadržavati logiku vašeg modula.
Ispod je kod koji će ući u ovu datoteku;
var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
- Ključna riječ "export" koristi se kako bi se osiguralo da funkcije definirane u ovoj datoteci mogu stvarno pristupiti drugim datotekama.
- Tada definiramo funkciju koja se naziva 'AddNumber'. Ova je funkcija definirana da uzima 2 parametra, a i b. Funkcija se dodaje modulu "izvozi" da bi funkcija postala javna funkcija kojoj mogu pristupiti drugi aplikacijski moduli.
- Napokon činimo da naša funkcija vrati dodanu vrijednost parametara.
Sada kada smo stvorili naš prilagođeni modul koji ima funkciju dodavanja 2 broja. Sada je vrijeme za izradu aplikacije koja će pozvati ovaj modul.
U sljedećem ćemo koraku zapravo vidjeti kako stvoriti aplikaciju koja će pozvati naš prilagođeni modul.
Korak 2) Izradite datoteku nazvanu "app.js", koja je vaša glavna datoteka aplikacije, i dodajte donji kod
var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
- Koristimo ključnu riječ "require" da bismo uključili funkcionalnost u datoteku Addition.js.
- Budući da su funkcije u datoteci Addition.js sada dostupne, sada možemo uputiti poziv funkciji AddNumber. U funkciji prosljeđujemo 2 broja kao parametre. Zatim prikazujemo vrijednost u konzoli.
Izlaz :
- Kada pokrenete datoteku app.js, u zapisniku konzole dobit ćete izlaz vrijednosti 3.
- Rezultat je to što je funkcija AddNumber u datoteci Addition.js uspješno pozvana, a vraćena vrijednost 3 prikazana je u konzoli.
Napomena: - Još ne koristimo "Upravitelj paketa čvorova" za instaliranje našeg modula Addition.js. To je zato što je modul već dio našeg projekta na lokalnom stroju. Upravitelj paketa Node pojavljuje se na slici kada objavite modul na Internetu, što vidimo u sljedećoj temi.
Proširivanje modula
Prilikom izrade modula također je moguće proširiti ili naslijediti jedan modul od drugog.
U suvremenom programiranju uobičajeno je izgraditi knjižnicu zajedničkih modula, a zatim proširiti funkcionalnost tih uobičajenih modula ako je potrebno.
Pogledajmo primjer kako možemo proširiti module u Node.js.
Korak 1) Stvorite osnovni modul.
U našem primjeru izradite datoteku pod nazivom "Tutorial.js" i stavite donji kod.
U ovom kodu samo stvaramo funkciju koja vraća niz na konzolu. Vraćeni niz je "Vodič za Guru99".
var exports=module.exports={};exports.tutorial=function(){console.log("Guru99 Tutorial")}
- Modul za izvoz koristi se tako da bilo koja funkcija definirana u ovoj datoteci može biti dostupna u drugim modulima u Node.js
- Stvaramo funkciju koja se naziva tutorial koja se može koristiti u drugim modulima Node.js.
- Prikazujemo niz "Vodič za Guru99" u konzoli kada je ova funkcija pozvana.
Sad kad smo kreirali naš osnovni modul nazvan Tutorial.js. Vrijeme je da stvorimo još jedan modul koji će proširiti ovaj osnovni modul.
Istražit ćemo kako to učiniti u sljedećem koraku.
Korak 2) Zatim ćemo stvoriti naš prošireni modul. Stvorite novu datoteku pod nazivom "NodeTutorial.js" i stavite donji kod u datoteku.
var Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")function pTutor(){var PTutor=TutorPTutor.tutorial();}}Orvar Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")this.pTutor = function (){var PTutor=TutorPTutor.tutorial();}}
Sljedeće ključne točke upućuju na gornji kod
- U novoj datoteci modula koristimo funkciju "zahtijeva". Budući da ćemo proširiti postojeću datoteku modula "Tutorial.js", prvo je moramo uključiti prije proširivanja.
- Zatim stvaramo funkciju koja se naziva "Nodetutorial". Ova će funkcija raditi dvije stvari,
- Na konzolu će poslati niz "Vodič za čvor".
- Poslat će niz "Vodič za Guru99" iz osnovnog modula "Tutorial.js" u naš prošireni modul "NodeTutorial.js".
- Ovdje provodimo prvi korak za slanje niza u "Vodič za čvorove" na konzolu.
- Sljedeći je korak pozivanje funkcije iz našeg modula vodiča, koji će na konzolu iznijeti niz "Vodič za Guru99".
Korak 3) Stvorite svoju glavnu datoteku app.js, koja je vaša glavna datoteka aplikacije, i uključite donji kod.
var localTutor=require('./NodeTutorial.js');localTutor.NodeTutorial();localTutor.NodeTutorial.pTutor();Or use this codevar tut = new localTutor.NodeTutorial(); // Create and save objecttut.pTutor(); // Call function on object
Gornji kod čini sljedeće stvari;
- Naša glavna aplikacijska datoteka sada poziva modul "NodeTutorial".
- Pozivamo funkciju "NodeTutorial". Pozivanjem ove funkcije, u zapisniku konzole prikazat će se tekst "Vodič za čvor".
- Budući da smo proširili modul Tutorial.js i izložili funkciju zvanu pTutor. Također poziva modul vodiča u modulu Tutorial.js, a tekst "Vodič za Guru99" također će biti prikazan na konzoli.
Izlaz:
Budući da smo izvršili gornji app.js kôd pomoću Node, dobit ćemo sljedeći izlaz u datoteci console.log
- Vodič za čvor
- Vodič za Guru99
Objavljivanje NPM (Node Package Manager) modula
Može se objaviti vlastiti modul u vlastitom spremištu Github.
Objavljivanjem svog modula na središnjem mjestu, tada niste opterećeni time da se morate instalirati na svaki stroj koji to zahtijeva.
Umjesto toga, možete upotrijebiti naredbu za instaliranje npm i instalirati svoj objavljeni npm modul.
Da biste objavili svoj npm modul, potrebno je slijediti sljedeće korake
Korak 1) Izradite svoje spremište na GitHubu (mrežni alat za upravljanje spremištem koda). Može se koristiti za hosting vaših spremišta koda.
Korak 2 ) Morate reći lokalnoj instalaciji npm o tome tko ste. Što znači da npm-u moramo reći tko je autor ovog modula, koji je ID e-adrese i bilo koji URL tvrtke koji je dostupan i koji mora biti povezan s tim ID-om. Sve ove pojedinosti bit će dodane vašem npm modulu kada bude objavljen.
Naredbe u nastavku postavljaju ime, e-adresu i URL autora npm modula.
npm postavljeno init.author.name "Guru99."
npm set init.author.email " Ova adresa e-pošte zaštićena je od neželjenih robota, potreban vam je omogućen JavaScript da biste je vidjeli."
npm postavljeno init.author.url http://Guru99.com
Korak 3) Sljedeći korak je prijava u npm pomoću vjerodajnica danih u zadnjem koraku. Da biste se prijavili, trebate koristiti naredbu u nastavku
npm login
Korak 4) Inicijalizirajte svoj paket - Sljedeći korak je inicijalizacija paketa za stvaranje datoteke package.json. To se može učiniti izdavanjem naredbe u nastavku
npm init
Kada izdate gornju naredbu, od vas će se zatražiti neka pitanja. Najvažniji je broj verzije vašeg modula.
Korak 5) Objava na GitHub - Sljedeći je korak objavljivanje izvornih datoteka na GitHubu. To se može učiniti pokretanjem naredbi u nastavku.
git add.git commit -m "Initial release"git tag v0.0.1git push origin master --tags
Korak 6) Objavite svoj modul - Posljednji bit je objavljivanje vašeg modula u registru npm. To se radi putem naredbe u nastavku.
npm publish
Upravljanje paketima trećih strana s npm
Kao što smo vidjeli, "Node manager paket" ima mogućnost upravljanja modulima, koji su potrebni za Node.js aplikacije.
Pogledajmo neke funkcije dostupne u upravitelju paketa čvorova za upravljanje modulima
-
Instaliranje paketa u globalnom načinu - Moduli se mogu instalirati na globalnoj razini, što u osnovi znači da bi ti moduli bili dostupni za sve projekte Node.js na lokalnom računalu. Primjer u nastavku pokazuje kako instalirati "express module" s globalnom opcijom.
npm instalirati express -global
Globalna opcija u gornjoj izjavi je ono što omogućuje instaliranje modula na globalnoj razini.
-
Popis svih globalnih paketa instaliranih na lokalnom računalu. To se može učiniti izvršavanjem naredbe u nastavku u naredbenom retku
npm lista --global
Ispod je izlaz koji će se prikazati ako ste prethodno instalirali "ekspresni modul" na svoj sustav.
Ovdje možete vidjeti različite module instalirane na lokalnom stroju.
-
Instaliranje određene verzije paketa - Ponekad može postojati zahtjev za instaliranjem samo određene verzije paketa. Jednom kada znate naziv paketa i relevantnu verziju koju treba instalirati, možete upotrijebiti naredbu npm install da biste instalirali tu određenu verziju.
Primjer u nastavku pokazuje kako instalirati modul zvan podvlaka s određenom verzijom 1.7.0
npm instalirati [email protected]
-
Ažuriranje verzije paketa - Ponekad možda imate stariju verziju paketa u sustavu i možda ćete ga trebati ažurirati na najnoviju dostupnu na tržištu. Da biste to učinili, možete upotrijebiti naredbu za ažuriranje npm. Primjer u nastavku pokazuje kako ažurirati paket donjih crta na najnoviju verziju
npm ažuriranje podvlaka
-
Traženje određenog paketa - Da biste pretraživali je li određena verzija dostupna na lokalnom sustavu ili ne, možete upotrijebiti naredbu za pretraživanje npm. Primjer u nastavku provjerit će je li ekspresni modul instaliran na lokalnom stroju ili nije.
npm search express
-
Deinstaliranje paketa - Isto u što možete instalirati paket, možete i deinstalirati paket. Deinstalacija paketa vrši se naredbom za deinstalaciju npm. Primjer u nastavku pokazuje kako deinstalirati ekspresni modul
npm deinstaliraj ekspresno
Što je datoteka package.json
Datoteka "package.json" koristi se za čuvanje metapodataka o određenom projektu . Te informacije pružaju upravitelju paketa Node potrebne informacije kako bi razumio kako se s projektom treba rukovati zajedno s njegovim ovisnostima.
Datoteke package.json sadrže informacije poput opisa projekta, verzije projekta u određenoj distribuciji, podataka o licenci i podataka o konfiguraciji.
Datoteka package.json obično se nalazi u korijenskom direktoriju Node.js projekta.
Uzmimo primjer kako izgleda struktura modula kada se instalira putem npm-a.
Snimka u nastavku prikazuje sadržaj datoteke express modula kada je uključen u vaš projekt Node.js. Na snimci možete vidjeti datoteku package.json u mapi express.
Ako otvorite datoteku package.json, vidjet ćete puno podataka u datoteci.
Ispod je snimka dijela datoteke. Express@~4.13.1 navodi broj verzije izričitog modula koji se koristi.
Sažetak
- Modul u Node.js logična je enkapsulacija koda u jednoj jedinici. Razdvajanjem na module modul čini kôd lakšim za upravljanje i održivijim za buduće svrhe
- Na tržištu je dostupno mnogo modula koji se mogu koristiti unutar Node.js-a kao što su express, donja crta, MongoDB itd.
- Upravitelj paketa čvorova (npm) koristi se za preuzimanje i instaliranje modula koji se potom mogu koristiti u aplikaciji Node.js.
- Mogu se stvoriti prilagođeni NPM moduli, proširiti ih i također objaviti.
- Upravitelj paketa Node ima cjelovit skup naredbi za upravljanje npm modulima na lokalnom sustavu, poput instalacije, deinstalacije, pretraživanja itd.
- Datoteka package.json koristi se za čuvanje svih podataka o metapodacima za npm modul.