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