🥇 Modulos anidados

Que sucedería por ejemplo si tuviesemos que incluir un módulo dentro de otro módulo, o dos modulos dentro de un tercero.

Un ejemplo muy común es una aplicación que es capaz de saludar en diferentes idiomas.

  1. Veamos el siguiente ejemplo, los siguientes 3 son los modulos que saludan en diferentes idiomas.

    // saludar/espanol.js
    var saludar = function () {
        console.log('Hola!');
    }
    
    module.exports = saludar;
    
    // saludar/ruso.js
    var saludar = function () {
        console.log('привет!');
    }
    
    module.exports = saludar;
    
    // saludar/ingles.js
    var saludar = function () {
        console.log('Hi!');
    }
    
    module.exports = saludar;
    

    Estos 3 modulos se encuentran dentro del folder saludar y dentro de este mismo folder vamos a agregar el modulo que administra estos 3.

    // saludar/saludar.js
    var espanol = require('./espanol');
    var ingles = require('./ingles');
    var ruso = require('./ruso');
    
    module.exports = {
        espanol : espanol,
        ingles : ingles,
        ruso : ruso
    };
    

    Ahora desde un nivel superior llamamos este modulo administrador que es saludar.

    // hola_hi_privet.js
    var saludar = require("./saludar/saludar.js");
    
    saludar.espanol();
    saludar.ingles();
    saludar.ruso();
    

    Si ejecutamos este ultimo programa, vamos a obtener lo siguiente.

    $ node hola_hi_privet.js
    Hola!
    Hi!
    привет!
    
  2. Basados en lo que revisamos el capítulo anterior, vamos a imprimir los mensajes utilizando un archivo de configuración json.

    {
        "espanol" : "Hola",
        "ingles" : "Hi",
        "ruso" : "привет"
    }
    

    Vamos a actualizar el modulo espanol de manera que mediante require carguemos la configuracion.

    // saludar/espanol.js
    var configuracion = require('./configuracion.json'); // mandar llamar la configuracion
    var saludar = function () {
        console.log(configuracion.espanol); // imprimir el valor configuracion.espanol
    }
    module.exports = saludar;
    

    Intenta complementar los modulos en ingles y ruso a través de la configuración como en el anterior ejemplo.

JSON. Patrones en módulos
comments powered by Disqus