Node.js Introducere – Module
In articolul anterior am facut o scurta analiza a codului demo de pe site-ul Node.js.
Specificatiile limbajului de programare JavaScript nu prezintă un mod robust pentru a scrie module, în timp s-au dezvoltat mai multe tipare, dar comunitatea avea nevoie de ceva general acceptat și deaceea s-a creat un sitem de standardizare a modulelor și pachetelor, CommonJS.
Node.js a implementat standardul CommonJS pentru module. Să luăm următorul exemplu:
modulul_meu.js
var Persoana = {}; // variabila privata Persoana.nume = 'necunoscut'; Persoana.membru = true; // functie privata var filtru = function (attr) { if (typeof( attr ) === 'string') return attr; return null; }; // API-ul modulului, functiile publice exports.getNume = function () { return Persoana.nume; }; exports.setNume = function (nume) { Persoana.nume = nume; }; exports.isMembru = function () { return Persoana.membru; }; exports.VERSIUNE = "0.0.1";
app.js
var modulul_meu = require('./modulul_meu.js'); // includem modulul if (modulul_meu.isMembru) { modulul_meu.setNume( 'Andrei' ); }; console.log( modulul_meu.getNume() );
Modulul se află într-un fișier separat, funcția require() citește fișierul “modulul_meu.js”, îl evaluează și rezultatul este un obiect de forma:
{ getNume: [Function], setNume: [Function], isMembru: [Function], VERSIUNE: "0.0.1" }
Funcția require() are un mod puțin mai complicat de a căuta modulele:
require(‘modulul_meu’):
- caută în modulele incluse în Node.js, dacă nu este găsit,
- caută în modulele globale (../node/node_modules/modulul_meu/index.js), dacă nu este găsit,
- caută în modulele locale (./node_modules/modulul_meu/index.js)
require(‘./modulul_meu.js’): caută în directorul curent
require(‘../modulul_meu.js’): caută în directorul precedent
require(‘./module/modulul_meu.js’): caută în directorul ‘module’, aflat în directorul curent
Managerul pentru module este NPM (Node.js Package Manager). Aici puteți găsi o mulțime de module utile. Instalați NPM pentru a putea instala mai simplu modulele.
Dacă aveți întrebări sau sugestii lăsati un comentariu.
Edit:
Ascultand podcast-ul NodeUp, am aflat ca mai este un site unde sunt prezentate modulele si resurse: toolbox.no.de
- Posted in:
- JavaScript
- Tags:
- guest post,
- JavaScript,
- Node.js
Ai un mic typo pe prima linie din modulul_meu.js: Prsoana in loc de Persoana
Good tut!
Fixed, thanks!
Cu plăcere, keep up the good work.
Chiar eram curios cum pot defini un modul în node dar n-am avut până acum curiozitatea să investighez de unul singur