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

