馃 Mi primer m贸dulo.

Un modulo es un bloque de c贸digo reutilizable cuya existencia no impacta de manera accidental otros bloques de c贸digo.

Javascript, al menos antes de ES6 no tenia una forma estandarizada de organizar el c贸digo de manera que un bloque de c贸digo no impactara otro. Existian formas prevenirlo pero no propiamente como parte del lenguaje.

馃嵖 CommonJS.

CommonJS es una forma estandarizada en la forma en la que los modulos deben de ser estructurados. Es decir la forma en la que organizamos el c贸digo Javascript.

馃嵖 Funciones de primer clase.

Javascript permite el uso de funciones de primer clase (First Class Functions), es decir que podemos asignar una funcion a una variable.

var saludar = function(){
    console.log('Hola !');
}

saludar();

E incluso podemos pasar funciones como parametros.

var saludar = function(){
    console.log('Hola');
}

var queHacer = function(fun){
    fun();
}

queHacer(saludar);

馃嵖 Creando nuestro primer m贸dulo.

Vamos a crear el primer m贸dulo que ser谩 independiente de los otros m贸dulos.

  1. Dentro de workspace vamos a crear el folder 02_primer_modulo, aqui es donde vamos a trabajar.

  2. Creamos el archivo saludar.js con el siguiente c贸digo para imprimir el Hola.

    /* saludar.js */
    console.log('Hola');
    
  3. Creamos ahora el archivo app.js con el cual vamos a mandar llamar el m贸dulo saludar.

    /* app.js */
    require('./saludar.js');
    
  4. Ejecutamos ahora app.js.

    $ node app.js
    

    Imprimir谩 el mensaje Hola.

  5. Ahora vamos a modificar un poco el m贸dulo saludar para encapsular el saludo.

    /* saludar.js */
    var saludar = function(){
        console.log('Hola');
    }
    
  6. Si invocamos la funci贸n saludar desde app.js vamos a ver que no es posible.

    /* app.js */
    require('./saludar.js')
    saludar();
    
    $ node app.js
    

    Aqui vamos a recibir una notificaci贸n de error, y lo que sucede es que aunque hemos invocado al m贸dulo, la funci贸n que existe dentro de este no puede ser invocada de esta forma. Esto esta echo intencionalmente as铆 en node para evitar que varias funciones en diferentes m贸dulos tengan el mismo nombre y colisionen entre si.

  7. Dentro del modulo saludar.js vamos a decirle que exportar.

    /* saludar.js */
    var saludar = function(){
        console.log('Hola');
    }
    
    module.exports = saludar;
    

    Estamos diciendole al modulo saludar que la parte que exportamos es la funcion funcion saludar.

    /* app.js */
    var saludar = require('./saludar')
    saludar();
    

    Y ahora a nivel del modulo app hemos capturadoa la saluda del modulo saludar en una variable con el mismo nombre. En esta ocasi贸n si podemos ejecutarla.

    Cuando utilizo la funcion require, si no especifico la extensi贸n del modulo, por default node asume que es .js, en el c贸digo lo hice asi.

Hola mundo. Objetos y literales.
comments powered by Disqus