miércoles, 19 de junio de 2013

CommonJs Modules

CommonJs especifica una forma de definir módulos, esto ayuda a tener más estructurado y ordenado nuestro código para que la interoperabilidad entre módulos sea más flexible.

Antes de ver ejemplos prácticos, hay 3 partes que usa CommonJS:

1. Variable “require” que es la función que recibe el identificador de un módulo, la cual devuelve lo que es exportado por dicho módulo.

2. Variable “exports” a la que el módulo debe agregar las API que quiera exportar.

3. Variable “module” que contiene un objeto con una propiedad id.

Al usar CommonJS Modules se pueden exportar funciones u objetos, ahora veremos ejemplos para cada uno de estos usos:

Módulo: operaciones.js

exports.suma(x, y){
return x +y;
};

exports.resta(x, y){
return x - y;
};

Uso: calculadora.js

var operacion = require('operaciones');

var suma = operacion.suma(20 , 5);
alert(suma); // Muestra 25

var resta = operacion.resta(18,3);
alert(resta); // Muestra 15

Como vemos en el ejemplo anterior, solo estamos exportando funciones, como podemos ver, en este caso no es necesario usar la variable modules, a continuación veremos un ejemplo en el cual usaremos un objeto trabajar en nuestro módulo:

Módulo: persona.js

function Persona(nombre, apellidoPaterno, apellidoMaterno){
this.nombre = nombre;
this.apellidoPaterno = apellidoPaterno;
this.apellidoMaterno = apellidoMaterno;
};

Persona.prototype.getNombreCompleto = function(){
return 'Nombre: ' + this.nombre + ' ' + this.apellidoPaterno + ' ' + this.apellidoMaterno;
}; // Prototype nos ayudaa definir una función para el objeto, eso //quiere decir que al exportar el objeto, tambien exportaremos la función

module.exports = Person; // Exportamos el objeto con su función

Uso:

var Persona= require(‘Persona’’);

var andres = new Persona('Andres','Tello','Campos');
var nombre = andres.getNombreCompleto();
alert(nombre); // Muestra: 'Nombre: Andres Tello Campos'

Como podemos ver, hay varias formas de usar el commonJS Modules, solo se necesita un poco de creatividad y buenas prácticas para darle el mejor uso posible y así tener un código más óptimo posible.

No hay comentarios:

Publicar un comentario