Globalni Objekat

U Node.js-u, globalni objekat služi kao kontejner za sve globalne varijable koje su dostupne u svim modulima vaše aplikacije. Slično objektu window u pregledačima, globalni objekat u Node.js-u omogućava pristup različitim globalnim funkcijama i varijablama, poput console, setTimeout, i clearTimeout. Da bi se pristupilo globalnom objektu, možete koristiti ključnu reč global.

Evo nekih komponenti Node.js-a koje su dostupne na globalnom nivou:

  • global – Referenca na sam globalni objekat.
  • process – Objekat koji pruža informacije i kontrolu nad trenutnim Node.js procesom.
  • console – Pruža pristup standardnim funkcijama za ispis.
  • Buffer – Klasa za rad sa binarnim podacima.
  • setImmediate(), clearImmediate() – Funkcije za asinhrono izvršavanje koda.
  • setTimeout(), clearTimeout(), setInterval(), clearInterval() – Funkcije za upravljanje izvršavanjem koda na osnovu vremena.
  • module, exports, require() – Osnovne funkcije za upravljanje modulima.
  • __dirname, __filename – Sadrže putanje do direktorijuma i fajla trenutnog modula.

NAPOMENA:
Korišćenje globalnog objekta za deljenje varijabli između modula nije preporučljiva praksa zbog potencijalnih problema sa održavanjem i testiranjem koda.

node.js

Module Wrapper Function

Moduli u Node.js-u omogućavaju izolaciju delova koda u odvojene jedinice. U Node.js-u, svaki modul se automatski obavija u funkciju. Ova wrapper funkcija omogućava modulima da imaju sopstveni privatni obim, gde elementi globalnog objekta: exports, require, module, __filename, i __dirname postaju sada njeni lokalni parametri funkcije. To znači da kada pišete kod u nekom Node.js modulu, vi zapravo pišete kod unutar ove wrapper funkcije.

  • exports: Ovaj objekat se koristi za izvoz metoda ili promenljivih iz modula. Bilo koji svojstvo ili metoda dodana na exports objekat postaje deo javnog interfejsa modula.
  • require(): Funkcija koja se koristi za učitavanje drugih modula.
  • module: Ovaj objekat predstavlja trenutni modul i sadrži informacije o njemu, uključujući exports objekat.
  • __filename: Apsoslutna putanja do trenutnog fajla modula. To znači da pokazuje punu putanju od korena fajl sistema do lokacije gde se fajl nalazi.

  • __dirname: Putanja do direktorijuma trenutnog modula.
OBJAŠNJENJE:

Zamisli da su moduli kao kutije sa alatima. Svaka kutija (modul) ima svoje alate (metode) koje možeš koristiti kada imaš dostupnu tu kutiju. Ako želiš da tvoj prijatelj koristi neke od tvojih alata, staviš ih u “posebnu” kutiju koju mu pošalješ. U svetu Node.js-a, to je kao kada koristiš module.exports da “staviš alate u kutiju” i require() da “otvoriš kutiju” koju ti je neko poslao.

Sada, zamisli da svaka kutija automatski dobije posebnu torbu kada je šalješ. U tu torbu možeš staviti sve što ti treba da tvoji alati rade kako treba, kao uputstva ili dodatne delove. U Node.js-u, to je kao “Module Wrapper Function”. Kad napišeš kod u modulu, Node.js automatski stavlja tvoj kod u tu posebnu funkciju (torbu) koja ti daje neke korisne stvari poput exports, require, module, __filename, i __dirname, tako da tvoj kod može lepo da radi sa ostalim delovima aplikacije.

Dakle, “Module Wrapper Function” je kao “magična” torba koja osigurava da svaka kutija (modul) ima sve što joj treba da bi alati (kodovi) unutra radili kako treba, čak i kada su poslati negde daleko

Imoport/Export Modula

commonjs

Da bi neki modul bio dostupan u drugim delovima aplikacije, koristi se CommonJS sintaksa: module.exports za izvoz, a require() za uvoz modula. Više o CommonJS možete pročitati u članku Modularno programiranje (eksterna sintaksa)

Primer

Ovde je prikazan modul koje exportuje jednu funkciju:

A u sledećem kodu se vidi kako se može pristupiti i iskoristiti ta funkcija u nekom drugom fajlu/modulu:

Ugrađeni Moduli u Node.js-u

Node.js dolazi sa bogatim setom ugrađenih modula koji su dizajnirani da olakšaju razvoj aplikacija. Ovi moduli obuhvataju širok spektar funkcionalnosti, od manipulacije fajlovima do kreiranja HTTP servera. Evo nekoliko ključnih:

  • Path Module: Ovaj modul pruža alate za rad sa putanjama fajlova i direktorijuma.
    Primer

  • OS Module: Omogućava interakciju sa operativnim sistemom.
  • FileSystem Module: Pruža funkcije za čitanje, pisanje i manipulisanje fajlovima.
  • Events Module: Omogućava rad sa događajima kroz implementaciju observer patterna.
  • Http Module: Omogućava kreiranje HTTP servera i klijenata.
    Primer

Podelite:

Ostavite komentar